これつぐです。 [ruby-list:17697] > 青山です。 > 2つの問題を混ぜてしまい(分けてしまい)すみません。この -1, 1 というの > は、|| でつなげると便利という話とは別で、<=> の返り値は、数値ではなく > (ちょうど何人かの方が書いて下さいましたが)、great, equal, less のような > 物にすべきかもしれないというつもりでした。 <=>が返り値に何をとると「便利か」についてはよくわからないですが、 何が仕様として「美しいか」については現状のままに一票を入れます。 基礎数学をやったことがある人なら0,1,-1が特別な存在だというのは、 同意してもらえると思います。 同値関係における0の役割は重要ですし、 「向き」の概念には1,-1は重要です。 # 美しくしたいだけなら数学をお手本にしておけば間違いない? > -1, 0, 1 というのは C 等での慣習であり、きっと数値である必要はないだろ > うから、great, equal, less のような物にすべきかもしれない。 > まとめると、ちょうど [ruby-list:17679] の、かんださんの案のような感じ > です。 この案だと結局実装は数値になるわけですが、 それこそCの(悪しき?)慣習であって、 Rubyにはあわない気がします。 falseやtrueが0や1でないのと同じで。 {great,equal,less}が定数ではなく 本物(?)のオブジェクトなら話は違うかもしれませんが……。