まつもと ゆきひろです
In message "Re: [ruby-dev:38725] [Bug #1720] [NaN] == [NaN] が true になる"
on Fri, 3 Jul 2009 21:43:24 +0900, tadayoshi funaba <
redmine@...> writes:
|NaN = 0.0/0
|[NaN] == [NaN] が true になりますが、
|
|NaN == NaN #=> false
|[1] == [1.0] #=> true
|
|という結果からするとおかしいように思います。
確かに。rb_equal()が両辺が同じオブジェクトのときにメソッド呼
び出しを行わずに真を返しているせいですね。NaNというのは、
equal?が成立しても==が成立しないという特異なオブジェクトであ
るためにこの問題が発生しています。
とはいえ、こんな特殊な例のために同値性チェックを遅くしたくな
いし、困ったものです。