class Lisp::Symbol
Public Class Methods
named(n)
click to toggle source
# File lib/rubylisp/symbol.rb, line 5 def self.named(n) name = n.to_s @@symbols ||= {} return @@symbols[n] if @@symbols.has_key?(n) s = self.new(n) @@symbols[n] = s s end
new(n)
click to toggle source
# File lib/rubylisp/symbol.rb, line 14 def initialize(n) @value = n @naked = (n[-1] == ?:) end
Public Instance Methods
evaluate(env)
click to toggle source
Calls superclass method
Lisp::Atom#evaluate
# File lib/rubylisp/symbol.rb, line 40 def evaluate(env) super return self if @naked env.value_of(self) end
naked?()
click to toggle source
# File lib/rubylisp/symbol.rb, line 32 def naked? @naked end
name()
click to toggle source
# File lib/rubylisp/symbol.rb, line 24 def name @value end
symbol?()
click to toggle source
# File lib/rubylisp/symbol.rb, line 28 def symbol? true end
to_naked()
click to toggle source
# File lib/rubylisp/symbol.rb, line 19 def to_naked Lisp::Symbol.named("#{@value}:") end
to_s()
click to toggle source
# File lib/rubylisp/symbol.rb, line 46 def to_s @value end
to_sym()
click to toggle source
# File lib/rubylisp/symbol.rb, line 50 def to_sym @value.to_sym end
type()
click to toggle source
# File lib/rubylisp/symbol.rb, line 36 def type :symbol end