Class: Lisp::Number
Instance Attribute Summary
Attributes inherited from Atom
#value
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Atom
#all?, #apply_to, #car, #cdr, #character?, #class?, #copy, #doc, #environment?, #eof_object?, #eq?, #equal?, #evaluate, #frame?, #function?, #length, #lisp_object?, #list?, #macro?, #object?, #pair?, #port?, #primitive?, #print_string, #quoted, #set_location, #special?, #string?, #symbol?, #vector?
Constructor Details
#initialize(n = 0) ⇒ Number
Returns a new instance of Number.
9
10
11
|
# File 'lib/rubylisp/number.rb', line 9
def initialize(n = 0)
@value = n
end
|
Class Method Details
.with_value(n) ⇒ Object
5
6
7
|
# File 'lib/rubylisp/number.rb', line 5
def self.with_value(n)
self.new(n)
end
|
Instance Method Details
#eqv?(sexpr) ⇒ Boolean
45
46
47
48
|
# File 'lib/rubylisp/number.rb', line 45
def eqv?(sexpr)
return false unless sexpr.number?
@value == sexpr.value
end
|
62
63
64
|
# File 'lib/rubylisp/number.rb', line 62
def false?
@value == 0
end
|
25
26
27
|
# File 'lib/rubylisp/number.rb', line 25
def float?
!@value.integer?
end
|
29
30
31
|
# File 'lib/rubylisp/number.rb', line 29
def integer
@value.to_i
end
|
21
22
23
|
# File 'lib/rubylisp/number.rb', line 21
def integer?
@value.integer?
end
|
41
42
43
|
# File 'lib/rubylisp/number.rb', line 41
def negative?
@value < 0
end
|
17
18
19
|
# File 'lib/rubylisp/number.rb', line 17
def number?
true
end
|
33
34
35
|
# File 'lib/rubylisp/number.rb', line 33
def positive?
@value > 0
end
|
13
14
15
|
# File 'lib/rubylisp/number.rb', line 13
def set!(n)
@value = n
end
|
54
55
56
|
# File 'lib/rubylisp/number.rb', line 54
def to_s
"#{@value}"
end
|
58
59
60
|
# File 'lib/rubylisp/number.rb', line 58
def true?
@value != 0
end
|
50
51
52
|
# File 'lib/rubylisp/number.rb', line 50
def type
:number
end
|
37
38
39
|
# File 'lib/rubylisp/number.rb', line 37
def zero?
@value == 0
end
|