module RbScheme::Helpers

Public Instance Methods

acons(key, val, cdr) click to toggle source
# File lib/rb-scheme/helpers.rb, line 8
def acons(key, val, cdr)
  cons(cons(key, val), cdr)
end
boolean(value) click to toggle source
# File lib/rb-scheme/helpers.rb, line 24
def boolean(value)
  value ? LTrue.instance : LFalse.instance
end
check_length!(lst, n, name) click to toggle source
# File lib/rb-scheme/helpers.rb, line 28
def check_length!(lst, n, name)
  c = lst.count
  unless c == n
    raise ArgumentError, "#{name}: wrong number of arguments(given #{c}, expected #{n})"
  end
end
check_min_length!(lst, min, name) click to toggle source
# File lib/rb-scheme/helpers.rb, line 35
def check_min_length!(lst, min, name)
  c = lst.count
  unless c >= min
    raise ArgumentError, "#{name}: wrong number of arguments(given #{c}, expected #{min}..)"
  end
end
cons(car, cdr) click to toggle source

Constructor

# File lib/rb-scheme/helpers.rb, line 4
def cons(car, cdr)
  LCell.new(car, cdr)
end
convert_to_list(array) click to toggle source
# File lib/rb-scheme/helpers.rb, line 16
def convert_to_list(array)
  result = list
  array.reverse_each do |e|
    result = cons(e, result)
  end
  result
end
list(*args) click to toggle source
# File lib/rb-scheme/helpers.rb, line 12
def list(*args)
  args.any? ? convert_to_list(args) : LCell.new
end