青山です。

On Thu, 14 Oct 1999 01:25:16 +0900,
Toshiro Kuwabara <toshirok / yb3.so-net.ne.jp> wrote:

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

このあたりは難しいですよね。だいたい、-1, 1 もこれが適切とは言いきれま
せんし。しかしとりあえず、

((a.to_i <=> b.to_i).nonzero? || a.to_s <=> b.to_s).nonzero? || a.to_f <=> b.to_f                                                                         

やはりこれはちょっと美しくないですし、

[a.to_i, a.to_s, a.to_f] <=> [b.to_i, b.to_s, b.to_f]

これも Array の機能を利用した応用技であり、そういう応用技が必要という
事は、元の仕様が不適切という事は明らかであると思います。


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