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