Module: Enumerable

Included in:
Rupture::Seq
Defined in:
lib/rupture/lazy_seq.rb

Instance Method Summary collapse

Instance Method Details

#seqObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/rupture/lazy_seq.rb', line 19

def seq
  F.lazy_seq do
    callcc do |external|
      each do |item|
        external = callcc do |internal|
          rest = F.lazy_seq do
            callcc do |external|
              internal.call(external)
            end
          end
          external.call(F.cons(item, rest))
        end
      end
      external.call(nil)
    end
  end
end