えぐち@エスアンドイー です。

>>> In message [ruby-list:17677] Re: <=> (Re: Hash $B$K(Bnil$BCM$rF~$l$?$J$i(B) 
    On Thu, 14 Oct 1999 17:46:16 +0900, nagai / dumbo.ai.kyutech.ac.jp said:

nagai> 永井@知能.九工大です.
nagai> 
nagai> このところ,こちらには貢献できてなくて申し訳ないんですが,
nagai> ちょっと目に入ったもので少しだけ.
nagai> 
nagai> # 議論に参加する時間がとれそうもないため,
nagai> # 言いっぱなしで心苦しいのですが...
	...
nagai> この辺りの話って,1998 年 4 月頃の [ruby-list:7286]
nagai> [ruby-dev:2026] 辺りで続いてる話と同じようなものですよね?

いま拝見しました。(ちょうど、この時期読んでなかったらしい)
<=> の意味を変えるのでなく、 <> という新しい演算子なんですね。
!= と混同しても実害が無いというのが魅力的ですね。

以前 Bigfloat を作ってた時に、符合, 指数, 仮数 の順に比較するため

    result = @sign <=> sign 
    return result if result != 0
    result = @exp <=> exp
    return result if result != 0
    return @prov <=> prov

と書いていたのが、

    return @sign <> sign || @exp <> exp || @prov <> prov

と書けるのは、見た目も非常に美しいですね。

nagai> nonzero? ってのはその過程で出てきたものです.
Numeric#nonzero? は(先日、私が間違えたように) 
!zero? と錯誤しやすいので、実際に使うのを躊躇します。
#単に私が間抜けなのですが ^^l

nagai> 当時と違うのは ||| という案が出てる点です.
nagai> 0 を false と判断する新しい論理演算子となるわけでしょうけど,
nagai> 0 だけを特別扱いというのは少し気持ち悪いですね.

これ私の発案ではありますが、
  『||| があるなら &&& もありか?』
という直行性の議論も生じるし、
  『偽の代用として 0 を返すメソッドを奨励している』
かのように思われるのが心配ですので、今は否定的です。
#絵面が「川」みたいで変だし ^^;;

nagai> 私の場合は,どうせ新しい演算子を追加するのなら,当時議論したような
nagai> -1, false, 1 を返す比較演算子を追加する方が好みです.

という事で、賛成1票。

nagai> # ruby 本,うちの研究室だけで 6 冊ほど生協に注文を出しました.(^_^)

発売日に手にしたいから、注文しなければ。ワクワク ワクワク ≧(^^)≦

	えぐち