hp12c
06 October 2013

Rubyのバグだと思ったら自分がバグだった ─ Enumerator編 ─

─ 問題 ─

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

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

─ 解説 ─

ブコメ参照せよ。

以上。


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



Please enable JavaScript to view the comments powered by Disqus. blog comments powered by Disqus
ruby_pack8

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


AltStyle によって変換されたページ (->オリジナル) /