青山です。

On Tue, 12 Oct 1999 20:39:49 +0900,
EGUCHI Osamu <eguchi / shizuokanet.ne.jp> wrote:

> 同じ事を考えた事がありますが、現状の sort 等では、
> 一致で nil が返って来ると困りますね。

そろそろ 1.5 も始まる事ですし、<=> にあわせて sort を変更という手はい
かがでしょう。0 を偽として扱うのをやめるのは Ruby 的には良い方向だと思
われますし。

他にも、C のライブラリにあわせて作られた拡張ライブラリでは、C の慣習で
の 0 を返すというのをそのまま Ruby 側に渡している場合がありますが(少な
くとも、GD ライブラリにはあったような気がします)、これらはやはり Ruby
の拡張ライブラリとしては nil なり false なりを返すようにしていくという
事で。

すると、当然ながら、Ruby 本体も sort 等で 0 を使うのはやめて、nil や
false を推奨していく。と。

ところで、nil の発祥の話からすると、偽の値としては false なんですね。
true, false が対になっていて、なんらかの値を返す物は nil とその値とい
う感じなのかと思っていました。

あの話からすると、nil は未定義値の代表であり、偽の代表はやはり false
という事ですから、<=> は 0 でも nil でもなく -1, false, 1 が適切そうで
すね。


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>