[#45637] [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい — "Glass_saga (Masaki Matsushita)" <glass.saga@...>

14 messages 2012/05/16

[#45670] [ruby-trunk - Bug #6479][Open] ipaddr.rbの受け付ける書式が、プラットフォームによって異なる — "kachick (Kenichi Kamiya)" <kachick1+ruby@...>

9 messages 2012/05/22

[ruby-dev:45634] [ruby-trunk - Bug #6428][Open] lazy版take/dropに2度forceを呼んだ時の挙動

From: "nagachika (Tomoyuki Chikanaga)" <nagachika00@...>
Date: 2012-05-12 16:52:19 UTC
List: ruby-dev #45634
Issue #6428 has been reported by nagachika (Tomoyuki Chikanaga).

----------------------------------------
Bug #6428: lazy版take/dropに2度forceを呼んだ時の挙動
https://bugs.ruby-lang.org/issues/6428

Author: nagachika (Tomoyuki Chikanaga)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-05-12 trunk 35629) [x86_64-darwin10.8.0]


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度目以降も同じ個数になるようにするパッチを添付します。
ただし実用的なユースケースがあるわけではありません。


-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next