Class: Enumerator

Inherits:
Object show all
Defined in:
lib/fr/unfold.rb

Class Method Summary collapse

Class Method Details

.unfold(seed) ⇒ Object

First generated element is first in Enumerator



82
83
84
85
86
87
88
89
90
91
92
# File 'lib/fr/unfold.rb', line 82

def unfold(seed)
  Enumerator.new do |yielder|
    while true
      yield(seed).fold(false) do |(item,seed_)|
        yielder.yield item
        seed = seed_
        true
      end || break
    end
  end
end