From: Tadayoshi Funaba Date: 2006-07-17T21:44:58+09:00 Subject: [ruby-dev:29034] Numeric#step ふなばです。 Numeric#step ですが、1.0/0 = 無限大であるとき、 $ ruby -v -eInf=1.0/0 -e'1.step(Inf, Inf){|x| p x}' ruby 1.8.4 (2005-12-24) [i386-freebsd5.4] $ ruby -v -r bigdecimal -r bigdecimal/util -eInf=1.0/0 -e"'1'.to_d.step(Inf, Inf){|x| p x}" ruby 1.8.4 (2005-12-24) [i386-freebsd5.4] 上のふたつの場合は、直ちに終了しますが、 $ ruby -v -r bigdecimal -r bigdecimal/util -eInf=1.0/0 -e"'1'.to_d.step(Inf.to_d, Inf.to_d){|x| p x}" この場合は終了する様子がありません。結果がまるで違いますが、望ましい振 舞いとはどういうものでしょうか。 また、 $ ruby -v -eInf=1.0/0 -e'10.step(1, Inf){|x| p x}' ruby 1.8.4 (2005-12-24) [i386-freebsd5.4] NaN 上のような場合は、NaN を一度印字しますが、 $ ruby -v -r bigdecimal -r bigdecimal/util -eInf=1.0/0 -e"'10'.to_d.step(1, Inf.to_d){|x| p x}" ruby 1.8.4 (2005-12-24) [i386-freebsd5.4] こちらは直ちに終了します。