class Endless

Public Class Methods

new() click to toggle source
# File lib/tarpaulin/endless.rb, line 9
def initialize
  make_a_promise Lazy.promise &Proc.new
end

Public Instance Methods

each() { |head_by_tail| ... } click to toggle source
# File lib/tarpaulin/endless.rb, line 21
def each
  p = get_promise
  a = []
  while p
    car, cdr = p
    head_by_tail = car[1]
    a << head_by_tail
    yield head_by_tail
    p = cdr.get_promise
  end
  a
end
get_promise() click to toggle source
# File lib/tarpaulin/endless.rb, line 17
def get_promise
  @p
end
make_a_promise(p) click to toggle source
# File lib/tarpaulin/endless.rb, line 13
def make_a_promise(p)
  @p = p
end
map() { |head_by_tail)| ... } click to toggle source
# File lib/tarpaulin/endless.rb, line 34
def map
  p = get_promise
  a = []
  while p
    car, cdr = p
    head_by_tail = car[1]
    a << (yield head_by_tail)
    p = cdr.get_promise
  end
  a
end