─ 問題 ─

以下のコードのバグを指摘せよ。

def step(init, step=1)
  Enumerator.new do |y|
    loop { y << init; init += step }
  end
end

odd = step(1, 2)

odd.next # => 1
odd.next # => 3
odd.next # => 5

これはNumeric#stepを使った以下のコードと同じ挙動が期待されている。

odd = 1.step(Float::MAX.to_i, 2)

odd.next # => 1
odd.next # => 3
odd.next # => 5

─ 解説 ─

ブコメ参照せよ。

以上。


ちょっとハマったので、問題にしてみましたよ!



blog comments powered by Disqus
ruby_pack8

100円〜で好評発売中!
M'ELBORNE BOOKS