ふなばです。 At 1999-10-14T13:21:14+0900 (2451465.68141JD), wakou / fsinet.or.jp (Wakou Aoyama) wrote: > <=>の0は別に「偽」を表しているわけではないのでは? > 比較を行うオペレータが同値関係が成り立つ時に偽を返すってのはなんか > 奇妙だと思うのですが。 wakou> このあたりは難しいですよね。だいたい、-1, 1 もこれが適切とは言いきれま wakou> せんし。しかしとりあえず、 そういっちゃうと、なんでも言いきれないような気がするんですが、具体的に どうすればいいのでしょう。 wakou> ((a.to_i <=> b.to_i).nonzero? || a.to_s <=> b.to_s).nonzero? || a.to_f <=> b.to_f wakou> やはりこれはちょっと美しくないですし、 これはそう思います。 ただ、これは、ずらずら並べれば、どうやっても、美しくなりようがないでしょ う。しかも、対象の数があらかじめ判っていて、その数が少ないときでないと つかえないと思います。 wakou> [a.to_i, a.to_s, a.to_f] <=> [b.to_i, b.to_s, b.to_f] wakou> これも Array の機能を利用した応用技であり、そういう応用技が必要という wakou> 事は、元の仕様が不適切という事は明らかであると思います。 僕はそうでもないと思います。 こういうのがよろしくないとかなると、ある種の言語は不適切なものだらけ になりませんか。 僕は、C などでよくつかわれているらしい、決り文句を Ruby で、そのままや ろうとしているのが、よくないのではないかと思います。僕は、とくに仕様が 不適切だと思ったことはないです。 ふなば ただよし