まつもと ゆきひろです

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

|とするも動かなくなってガックリ。精神衛生上、悪いよー!みたいな?確かに
|それはあるかも。結局 '!'が複数の意味(機能)を持つ現状もよろしくないと。

ま、そうなんですよね。ま、「bangメソッドを効率向上の目的に使
うのは間違ってる」という結論になじんでしまったので、互換性を
達成する情熱が失せてしまいました。これも新井さんのおかげです。

|ここが結構ポイントで、今回の「gsub! の変更」は機能的に cascading を意
|味して(=欲して)いると見えるのです。

そうなのかなあ。まあ、言語は思考を規定しますから、cascading 
の記法を持つ言語で考えるようになればそう思えるようになるのか
もしれません。私の意識ではchainingで実現しようとしているもの
はUNIXのpipeのようなもので、処理されたデータが次々流れるので
あって、同じレシーバに連続してメッセージを送るのではないよう
に感じています。

|> せん(かえって残酷か)。yourselfについてはいまだ「それなに?」
|> 状態なのでなんとも言えません。ていうか、それなに? まじで。
|
|「メッセージの receiver(の self)」です。

うーん、つまり「cascadingの受け手」なんですね、きっと。

ま、それはともかく、西さんのおっしゃるように

|cascading の採用は、機能的には無意味で、「同一オブジェクトに対して連続
|してメッセージを投げる」事が簡潔に表現できる、という事がメリットになり
|ます。ですから、instance_eval は長いのでその要件を満たしておらず、あく
|まで文法的にサポートして欲しいと思っています。

なので、コンパクト(あるいは使いやすい)記法が思い付かなければ、
cascadingは採用できないと思います。というか、採用の意味がな
いでしょう。後は結果的にきちきちのRubyの文法のすき間をどう縫っ
て記法を用意するかですね。

# 記号が残ってないと言えば「クラス変数」用のprefix記号も欲し
# いんだけど。

|> 強すぎです。Smalltalkのようなコンパクトな文法であれば利用価
|> 値が出てきそうですが、もう記号が残ってないぞ。
|
|記号がないというのが、手も足も出ませんね。よくぞここまで矛盾なく使い切っ
|たものです。というか、Smalltalk が「コンパクトな文法」であるというのは、
|どういった観点からなのでしょうか?(他意はなく、純粋に質問です)

えーと、Smalltalkでは

  obj mesg; mesg2; mesg3

で

  obj mesg
  obj mesg2
  obj mesg3

という意味でなかったです? あれはLittle Smalltalkだったかな?
手元に資料がない。

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