Sha256: 494978fd39986de5fe7b5a719304ff7bc5d48343cd334222baf95361aff3d217
Contents?: true
Size: 653 Bytes
Versions: 1
Compression:
Stored size: 653 Bytes
Contents
module Rupture class LazySeq < Seq def initialize(b = nil, &block) @block = block || b super() end def seq return @seq unless @block @seq = @block.call.seq @block = nil @seq end end end module Enumerable 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 end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rupture-0.1.0 | lib/rupture/lazy_seq.rb |