これつぐです。


[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}が定数ではなく
本物(?)のオブジェクトなら話は違うかもしれませんが……。