Enumerator#each がシーケンスの現在の位置から始まらないことに驚いています。
o = Object.new
def o.each
yield 1
yield 2
yield 3
end
e = o.to_enum
puts e.next
puts e.next
e.each{|x| puts x}
# I expect to see 1,2,3 but I see 1,2,1,2,3
# apparently Enumerator's each (inherited from Enumerable) restarts the sequence!
私はそれを間違っていますか?予想される各動作を持つ別の列挙子 (e から) を構築する方法はありますか?