lib/rus3/procedure/predicate.rb in rus3-0.1.0 vs lib/rus3/procedure/predicate.rb in rus3-0.1.1
- old
+ new
@@ -42,16 +42,16 @@
#
# Most of them have suitable types in Ruby built-in classes. Rus3
# provides some classes for the rest of them.
#
# boolean? ---> FalseClass or TrueClass
- # pair? ------> Rus3::Pair
+ # pair? ------> Array (as a list) or Rus3::Pair (as a dotted pair)
# symbol? ----> Symbol
# number? ----> Numeric
# char? ------> Rus3::Char
# string? ----> String
- # vector? ----> Array
+ # vector? ----> Rus3::Vector
# port? ------> Rus3::Port
# procedure? -> Proc
# :startdoc:
@@ -62,26 +62,27 @@
def pair?(obj)
obj.instance_of?(Array) or obj.instance_of?(Rus3::Pair)
end
def symbol?(obj)
- obj.is_a?(Symbol) && obj != Rus3::UNDEF
+ obj.instance_of?(Symbol) && obj != Rus3::UNDEF
end
def number?(obj)
- obj.is_a?(Numeric)
+ obj.kind_of?(Numeric)
end
def char?(obj)
false
end
def string?(obj)
obj.kind_of?(String)
end
+ # procedure (R5RS/R7RS): (vector? obj)
def vector?(obj)
- false
+ obj.instance_of?(Rus3::Vector)
end
def port?(obj)
false
end