Bug #6152
closedEnumerator::Lazy#take
Description
=begin
以下はテストにある Step クラスですが、
class Step
include Enumerable
attr_reader :current, :args
def initialize(enum)
@enum = enum
@current = nil
@args = nil
end
def each(*args)
@args = args
@enum.each{|i| @current = i; yield i}
end
end
a = Step.new(1..10)
a.take(5).first # => 1
a.current # => 5
a.lazy.take(5).first # => 1
a.current # => 1
a.take(5).first(5) # => [1, 2, 3, 4, 5]
a.current # => 5
a.lazy.take(5).first(5) # => [1, 2, 3, 4, 5]
a.current # => 5
a.take(5).to_a # => [1, 2, 3, 4, 5]
a.current # => 5
a.lazy.take(5).to_a # => [1, 2, 3, 4, 5]
a.current # => 6
最後の例で current が 6 まで進むのは正しいでしょうか?
=end
Updated by shugo (Shugo Maeda) about 13 years ago
- Status changed from Open to Closed
Nobuhiro IMAI wrote:
以下はテストにある Step クラスですが、
(snip)
a.lazy.take(5).to_a # => [1, 2, 3, 4, 5]
a.current # => 6最後の例で current が 6 まで進むのは正しいでしょうか?
正しくないですね。takeの方のバグだったので修正しました。