Toshです。

> すると、当然ながら、Ruby 本体も sort 等で 0 を使うのはやめて、nil や
> false を推奨していく。と。
> 
> ところで、nil の発祥の話からすると、偽の値としては false なんですね。
> true, false が対になっていて、なんらかの値を返す物は nil とその値とい
> う感じなのかと思っていました。
> 
> あの話からすると、nil は未定義値の代表であり、偽の代表はやはり false
> という事ですから、<=> は 0 でも nil でもなく -1, false, 1 が適切そうで
> すね。

<=>の0は別に「偽」を表しているわけではないのでは?
比較を行うオペレータが同値関係が成り立つ時に偽を返すってのはなんか
奇妙だと思うのですが。
# 「比較できない」時にnilを返す、とかならわかります。

それと、結果によって返値の型が違うメソッドはちょっと気持が悪い気が
します。あとあと変な事になりそうで。

---
Tosh