けいじゅ@いしつかです.

出遅れましたので. ちょっとだけ.

In [ruby-dev:29443] the message: "[ruby-dev:29443] Re: nil.to_s", on
Sep/03 23:25(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>|自分がto_sを書く時には、printやwriteで出力する時に一番便利そうな
>|形式の文字列を返すようにしていました。
>|よくMailクラスとかにto_sでRFC822形式の文字列化する機能を付けて
>|そのままパイプでsendmailにprintして投げたりするんですが、こういう
>|使い方はまつもとさんの想定外ということでしょうか。

>そんなことはないですね。うーん、それを考えると「『そのオブジェ
>クトがどんなものであるか』がはっきり分かる文字列であるべき」
>というのは、とても強すぎですね。この発言が話をややこしくした
>ようならすいません。

こまるなー. まつもとさん. そんなことでは!!

そんなことでは.  もともと, to_sはSmalltalkのprint it(printOn:)を元にで
きていたはずなので, (うっとおしくない程度に)『そのオブジェクトがどんな
ものであるか』であるのは大原則であったはず.

# ちなみに, inspectはSmalltalkのinspect it, dumpはstoreOn:. 

それはともかく, nil.to_sは nil とするとしていますが, さらに一歩進んで
#<nil> とか #nil ぐらいの方がよいのでは? 

>to_sは「printやwriteで出力する時に一番便利そうな形式の文字列
>を返す」でいいです。で、「なんでもない」ことを明示的に示す
>"nil"の方が良いと思ったんですけど、そうでもないのかなあ。

わたしは, まつもと案に賛成です. というか, やっとそういう気になったのかっ
て感じですが. ちなみに, Array#to_sはもっと直してほしい.

># ちょっと形勢不利

反対派しかいないですからねぇ... でも, 本当は賛成派の人も結構多いと思う
んですが... 

とはいえ, 今週はずーと大阪に出張なのであまり応援はできそうもないですが(^^;;
ということで, 陰ながら応援しています(__;

>|加えて、零元に相当するものがない型に変換する場合は、empty?が
>|真を返すようなオブジェクトに変換することにしてはどうでしょう。
>
>えーと、「零元に相当するものがない」のに「empty?が真を返す」
>というので思いつくのはコンテナ系しかないのですが。そういえば、
>[]はArrayの零元なんだろうか。

どーでもいいことですが, そのとおりでしょう.

[]+anArray == anArray , anArray+[] == anArray

ですから.

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju / ishitsuka.com <<---