lib/lisp/interpreter/core/object.rb in lisp-interpreter-0.5.3 vs lib/lisp/interpreter/core/object.rb in lisp-interpreter-0.5.4
- old
+ new
@@ -2,11 +2,11 @@
require 'bigdecimal'
# Object class
class Object
def number?
- match(/\A[-+]?[0-9]*\.?[0-9]+\Z/)
+ match(/^[\+\-]?\d*\.?\d+(?:[Ee][\+\-]?\d+)?$/)
end
def to_num
return to_f if to_s.include? '.'
to_i
@@ -43,9 +43,13 @@
end
def type
fns = %w[list pair string number character boolean quote]
fns.each { |t| return '<' + t + '>' if send t + '?' }
+ end
+
+ def to_char
+ '#\\' + (self == ' ' ? 'space' : self)
end
private
def object_split