まつもと ゆきひろです

ま、bang method の挙動は元に戻そうと思うんであまり意味が無く
なってきてるのですが、cascadingとかは興味深いんでケイゾク。

In message "[ruby-dev:9154] Re: bang method returns string always"
    on 00/02/08, Kazunori NISHI <kazunori / swlab.csce.kyushu-u.ac.jp> writes:

|前にも少し触れましたが、これは method chain に拘らずとも cascading
|messages を用いる事で解決できる問題ですよね?むしろ、chain する為に既
|存の機能を捨てて self を返すよりも、その方がかなり自然でしょう。

cascadingとchainingは違うもので、一般的には置換可能ではない
ですよね。bang method ではたまたま一致しますが。今回 bang
method の挙動を変えたかったのは no nang method と統一したかっ
たからで、そういう意味では bang method に対してしか有効でな
い cascading はあまり魅力的ではないです。

|さらに、その統一の動機が「Ruby という言語の設計上の美しさ」ではなく
|「method chain の実現」の為あれば、繰り返しになりますがその情熱を 
|cascading に向けて、合わせて yourself まで実装される方がより建設的だと
|感じます。(洗脳する狙い)

あまり cascading が欲しいと思った局面に陥ったことがないんで、
情熱を持てないんですが、他の人の情熱を途中で止める気はありま
せん(かえって残酷か)。yourselfについてはいまだ「それなに?」
状態なのでなんとも言えません。ていうか、それなに? まじで。

|> いや、念のためですが、私があんまり好きでないのは「カスケーディ
|> ング」というアイディアではないですよ。西さんが今までに提案し
|> た「Rubyにおけるカスケーディングのノーテーション」です。
|
|あ、よかった。というか、よくないと言うか。。。複雑な心境ですが、このま
|ま私が、まつもとさんの心を射とめるまで、下手な鉄砲を打ち続けないとダメ
|ですか?もう少し、どこが悪いか等のフィードバックや方向性を示してもらえ
|ると嬉しいな、みたいな。

ほっとかれた方がいろいろ楽しめてよろしいんでは(相当残酷か)。

ま、キーになるのは

  * Rubyにおけるcascadingの意味とあり方
  * それから求められる機能を実現する文法
  * その文法の分かりやすさ
  * Rubyの他の部分の文法との整合性

などではないでしょうか。今まで話が出たレベルでは、「そんなに
嬉しくなさそう」、「instance_evalでいいじゃん」という印象が
強すぎです。Smalltalkのようなコンパクトな文法であれば利用価
値が出てきそうですが、もう記号が残ってないぞ。

                                まつもと ゆきひろ /:|)