Actions
Bug #6428
closedlazy版take/dropに2度forceを呼んだ時の挙動
Description
Enumerator::Lazy#take が返す Enumerator::Lazy に繰り返し force/to_a メソッドを呼ぶと、
2度目以降は全ての要素を返しています。
$ cat lazy_take_recycle.rb
lazy_take = (1..5).lazy.take(3)
p lazy_take.force
p lazy_take.force
$ ruby lazy_take_recycle.rb
[1, 2, 3]
[1, 2, 3, 4, 5]
同じ Enumerator::Lazy に force を複数回呼ぶのがよい使いかたではないのかもしれませんが、
なんとなく何度呼んでも先頭の要素を返してくれるのが嬉しいのではないかと思います。
2度目以降も同じ個数になるようにするパッチを添付します。
ただし実用的なユースケースがあるわけではありません。
Files
Actions
Like0
Like0Like0