けいじゅ@いしつかです.
In [ruby-dev:38735] the message: "[ruby-dev:38735] Re: [Bug #1720]
[NaN] == [NaN] が true になる", on Jul/05 01:31(JST) Yukihiro
Matsumoto writes:
>まつもと ゆきひろです
> (1) NaN == NaN も true にする
> 一貫性はあるが NaN の本来の挙動ではない
> (2) rb_equal()でまずequal?でのチェックをやめる
> 性能が劣化するので避けたい
> (3) rb_equal()でT_FLOATを特別扱い
> 2ほどではないにしても性能劣化が気になる
> 特別扱いは後悔することが多い
> (4) このまま。これは例外的なケースとする
>私自身は、どれが良いという意見を現時点では持たないのですが、
>どれが好きかと言われれば、(1)が好きです。
わたしも, (1)のような気がします.
というか, (1')ですか:
(1')
nan1 = 0.0/0
nan2 = 0.0/0
として,
nan1 == nan1 => true
nan1 == nan2 => false
現行では,
nan1.equal?(nan1)
なのに,
nan1 == nan1 => false
となるのは,オブジェクト指向的にかなり気分の悪い仕様だと思います. nan1
とnan1の値はやはり同じだとしてよいと思います.
> 一貫性はあるが NaN の本来の挙動ではない
とありますが, それに関しては nan1 == nan2 => false になれば問題ないき
がします.
__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail:
keiju@... <<---