class Rubic::Builtin::List
Public Instance Methods
car(l)
click to toggle source
# File lib/rubic/builtin/list.rb, line 8 def car(l) unless pair? l raise Rubic::TypeError, "pair required, but got `#{l}'" end l.first end
cdr(l)
click to toggle source
# File lib/rubic/builtin/list.rb, line 15 def cdr(l) unless pair? l raise Rubic::TypeError, "pair required, but got `#{l}'" end l.last end
cons(a, b)
click to toggle source
# File lib/rubic/builtin/list.rb, line 4 def cons(a, b) [a, b] end
list(*args)
click to toggle source
# File lib/rubic/builtin/list.rb, line 22 def list(*args) args.reverse.reduce([]) {|res, e| [e, res] } end
null?(suspect)
click to toggle source
# File lib/rubic/builtin/list.rb, line 30 def null?(suspect) suspect.is_a?(Array) ? suspect.empty? : false end
pair?(suspect)
click to toggle source
# File lib/rubic/builtin/list.rb, line 26 def pair?(suspect) suspect.is_a?(Array) ? suspect.any? : false end