えぐち@エスアンドイー です。 >>> In message [ruby-list:17682] Re: <=> (Re: Hash にnil値を入れたなら) On Thu, 14 Oct 1999 20:24:46 +0900, kjana / os.xaxon.ne.jp (YANAGAWA Kazuhisa) said: kjana> In message <19991014155954A.tadf / kt.rim.or.jp> kjana> tadf / kt.rim.or.jp writes: ... kjana> > wakou> [a.to_i, a.to_s, a.to_f] <=> [b.to_i, b.to_s, b.to_f] kjana> > kjana> > wakou> これも Array の機能を利用した応用技であり、そういう応用技が必要という kjana> > wakou> 事は、元の仕様が不適切という事は明らかであると思います。 kjana> > kjana> > 僕はそうでもないと思います。 kjana> kjana> そうですよね.`<=>' という三種類(あるいは比較不能を含めて四種類)の結 kjana> 果を返す演算子で,「等しい」を意味するのが「nil/false」である,という kjana> 仕様はあまりにも直観的でないと思います. kjana> kjana> # 「比較不能」のためにとっといてくれ,と. 典型的な(?)比較不能なケースの NaN との比較は、 現状では例外を挙げます。(FloatDomainError) また、 100 <=> [] の様なケースも右辺で (TypeError) ですね。 以前、Set クラス(集合)同士の比較が話題に登った気がしますが。 このような場合は、false かなぁ??? kjana> Array の比較が「要素の順序による一種の辞書順」であるのは十分に直観的だ kjana> と思うし,それを利用するのが不適切であるとはあまり思えません. 同感。 えぐち