ふなばです。

At 1999-10-14T16:41:22+0900 (2451465.82039JD),
wakou / fsinet.or.jp (Wakou Aoyama) wrote:

wakou> 青山です。

wakou> On Thu, 14 Oct 1999 16:00:07 +0900,
wakou> Tadayoshi Funaba <tadf / kt.rim.or.jp> wrote:

> そういっちゃうと、なんでも言いきれないような気がするんですが、具体的に
> どうすればいいのでしょう。

wakou> 最初ににあげたように、-1, nil, 1 とか、-1, false, 1 だと

いえ、違います。

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

だいたい、-1, 1 もこれが適切とは言いきれません、といっていますよね。

wakou> a.to_i <=> b.to_i || a.to_s <=> b.to_s || a.to_f <=> b.to_f

> ただ、これは、ずらずら並べれば、どうやっても、美しくなりようがないでしょ
> う。しかも、対象の数があらかじめ判っていて、その数が少ないときでないと
> つかえないと思います。

wakou> ちょっとここはよく意味がわかりませんでしたが、次のような記述は結構美し
wakou> いのではないかと思いますけど、あまり馴染みありません?

wakou> a.to_i <=> b.to_i || a.to_s <=> b.to_s || a.to_f <=> b.to_f
wakou> a.to_i <=> b.to_i ||| a.to_s <=> b.to_s ||| a.to_f <=> b.to_f

これは、あらかじめ、たったの3つだと判っているということですよね。

> 僕は、C などでよくつかわれているらしい、決り文句を Ruby で、そのままや
> ろうとしているのが、よくないのではないかと思います。僕は、とくに仕様が
> 不適切だと思ったことはないです。

wakou> ちょうどまったく同じ事を私も書いています([ruby-list:17665])。やはり C
wakou> の書き方をそのまま Ruby に持ち込むと違和感がでる場合がありますよね。

いえ、意味がまったく違うと思います。青山さんは、零を nil や false に直
そうといっていますが、 それは、 Ruby 流にするためでなく、C 的な発想を
Ruby に持ちこむためです。Tosh さんもいうように、<=> の零を偽と解釈する
のはムリがあると思います。

僕は、<=> の零を  nil や false に読み替る版や、|| の右辺の零を特別あつ
かいする版は、とても気持ちがわるいです。もっといろいろ便利につかえるの
であれば、少々気持ちわるくてもよさそうですが、今のところ、そういう話も
でていないので、納得できません。

ふなば ただよし