Bug #914

Integer#upto(NaN)

Added by tadayoshi funaba about 3 years ago. Updated 10 months ago.

[ruby-dev:37525]
Status:Rejected Start date:12/21/2008
Priority:Normal Due date:
Assignee:Yukihiro Matsumoto % Done:

0%

Category:core
Target version:1.9.1 Release Candidate
ruby -v:

Description

upto(NaN) や downto(NaN) で実質的に無限ループになるようで面白いのですが、
これは意図した動作といえるのでしょうか。

History

Updated by Yuki Sonoda about 3 years ago

  • Category set to core
  • Assignee set to Yukihiro Matsumoto
  • Target version set to 1.9.1 Release Candidate

Updated by Yukihiro Matsumoto about 3 years ago

まつもと ゆきひろです

In message "Re: [ruby-dev:37525] [Bug #914] Integer#upto(NaN)"
    on Sun, 21 Dec 2008 16:04:10 +0900, tadayoshi funaba <redmine@ruby-lang.org> writes:

|upto(NaN) や downto(NaN) で実質的に無限ループになるようで面白いのですが、
|これは意図した動作といえるのでしょうか。

NaNはすべての比較に対して偽を返しますから、それに基づくと意
図した動作と言えるのではないでしょうか。

別案としてはNaNを含む比較を例外にするという方法もありますが、
かなり挙動が違うので躊躇します。

Updated by Yukihiro Matsumoto about 3 years ago

  • Status changed from Open to Rejected
開発ミーティングで直接話しましたが、未来で「超実数(Yugui談)」とかについて考える気があるそうなので、現時点では放置とします。
超実数と言われても私には何がなんだか。

Updated by tadayoshi funaba about 3 years ago

> |upto(NaN) や downto(NaN) で実質的に無限ループになるようで面白いのですが、
> |これは意図した動作といえるのでしょうか。
> 
> NaNはすべての比較に対して偽を返しますから、それに基づくと意
> 図した動作と言えるのではないでしょうか。

それは仕様でなくて実装の話ですよね。別の実装であれば、逆に一度も回らな
かったかもしれないですよね。実際、step(NaN) はそのように見えます。
現時点では結果は未定義でもいいのかもしれませんけど。

Updated by Yukihiro Matsumoto about 3 years ago

まつもと ゆきひろです

In message "Re: [ruby-dev:37549] Re: [Bug #914] Integer#upto(NaN)"
    on Mon, 22 Dec 2008 21:11:41 +0900, Tadayoshi Funaba <tadf@dotrb.org> writes:

|> NaNはすべての比較に対して偽を返しますから、それに基づくと意
|> 図した動作と言えるのではないでしょうか。
|
|それは仕様でなくて実装の話ですよね。別の実装であれば、逆に一度も回らな
|かったかもしれないですよね。実際、step(NaN) はそのように見えます。
|現時点では結果は未定義でもいいのかもしれませんけど。

仕様という観点からは未定義ですね。いずれにしても今回は手をつ
けませんので、バグとしてはrejectの方向で。

Also available in: Atom PDF