From: ttate@... Date: 1999-11-07T06:04:39+09:00 Subject: [ruby-dev:8259] Re: [ruby-list:18468] Re: Array doesn't include Comparable 立石です。 ;; ruby-devに持ってきました。 Date: Sun, 7 Nov 1999 03:12:23 +0900 From: Koretsugu Daigoro tmmcross> [ruby-list:18467] Array doesn't include Comparable tmmcross> > Array#<=> が定義されてるのに not Array < Comparable なのは何か理由があ tmmcross> > りましたっけ? tmmcross> > [1, 2] > [0, 3] #=> NameError: undefined method `>' for [1, 2]:Array tmmcross> > って,何か悲しい.... tmmcross> tmmcross> Array は全順序ではないから、 tmmcross> というか比較できない場合があるから……かな? やっぱり(?)Enumerable#<=> があるのは何か変な気がしますし、メソッドと モジュール名を見た時にEnumerableとComparableの違いがなんかすっきりし ないです。 Enumerableはeachをもとにしたメソッドのみを対象にすべきではないかと思 います。で、Comparableは<=>をもとにしたメソッドのみで構成する方が使う ときにも単純ではないでしょうか? 具体的にはEnumerable#max,min,sortはComparableへ移った方がいいような気 がします。で、Enumerable#first,lastがあると良いかなぁと、、、 ;; Ruby本(P.236)で見るとやっぱり変な気がしてきてしまった、、、(^^; Takaaki Tateishi