Sha256: 988eb95b3d17dfc8e84cf2c3495eb90f322eb928b47904503cf3d6d1a68e1eb3
Contents?: true
Size: 654 Bytes
Versions: 1
Compression:
Stored size: 654 Bytes
Contents
require 'continuation' module Rupture class LazySeq < Seq def initialize(block = nil) @block = block 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.3.0 | lib/rupture/lazy_seq.rb |