module Abstractivator::Cons

Constants

Nil

Public Instance Methods

cons(h, t) click to toggle source
# File lib/abstractivator/cons.rb, line 10
def cons(h, t)
  Cell.new(h, t)
end
empty_list() click to toggle source
# File lib/abstractivator/cons.rb, line 6
def empty_list
  Nil
end
enum_to_list(enum) click to toggle source
# File lib/abstractivator/cons.rb, line 31
def enum_to_list(enum)
  e = enum.reverse.each
  result = Nil
  begin
    while true
      result = cons(e.next, result)
    end
  rescue StopIteration
    result
  end
end
head(p) click to toggle source
# File lib/abstractivator/cons.rb, line 14
def head(p)
  p.first
end
list_to_enum(list) click to toggle source
# File lib/abstractivator/cons.rb, line 22
def list_to_enum(list)
  Enumerator.new do |y|
    while list != Nil
      y << head(list)
      list = tail(list)
    end
  end
end
tail(p) click to toggle source
# File lib/abstractivator/cons.rb, line 18
def tail(p)
  p.last
end