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