えぐち@エスアンドイー です。 >>> In message [ruby-list:18470] Re: Array doesn't include Comparable On Sun, 7 Nov 1999 07:13:47 +0900, matz / netlab.co.jp (Yukihiro Matsumoto) said: matz> まつもと ゆきひろです matz> matz> In message "[ruby-list:18467] Array doesn't include Comparable" matz> on 99/11/07, YANAGAWA Kazuhisa <kjana / os.xaxon.ne.jp> writes: matz> matz> |Array#<=> が定義されてるのに not Array < Comparable なのは何か理由があ matz> |りましたっけ? matz> matz> 配列全般が相互に比較できる対象ではないからです。 matz> <=>はsortのためしかたなく実装している感じ。 Array#<=> は Array#sort の実装に必須でないと思います。 これは、「要素に Array を含む Array」の sort には必要だと思います。 しかし、これが可能と言う事は配列同士の比較が可能という立場 を取っている事を間接的に示してい(るように思え)ます。 私は、 『比較に失敗する場合があるだけでは、比較不能と 直ちに結論づけられない、、Array#<=> も Array#< も有意』 と思います。 なぜなら、 『NaN の存在は Float#<=> を否定しない』 という先例があるからです。 #ちょっと(かなり強引)? と言う事で、Array を Comparable にするに一票。 えぐち #薮蛇になって、Array#<=> を抹消されたりして ^^;;;