From: matz@... (Yukihiro Matsumoto) Date: 2002-11-11T19:03:29+09:00 Subject: [ruby-list:36443] Re: ar=[];ar+=2でエラー まつもと ゆきひろです 日本につきました。 In message "[ruby-list:36441] Re: ar=[];ar+=2でエラー" on 02/11/11, Tanaka Akira writes: |つまりメンタルモデルの違いによるわけですね。Ruby が作者のメンタルモデ |ルを反映するのは自然な話なので、それはそれで納得できます。 そゆことですね。 |ふむ。let a = b = value で、b の扱いは? まだこれから考えないといけません。 * aだけブロックローカル * aもbもブロックローカル の両方が考えられますが、なんとなく前者かなあ。 |> という風にしようかなと思っています。非互換ですが、普通の使い |> 方をしてる場合にはあまり問題にならない非互換性だと思います。 |> みなさん、今後を考えてちょっとだけ注意してブロック内ローカル |> 変数を使いましょう。 | |現在と Rite の両方でブロックローカルな変数はブロックパラメータだけな気 |がするので、いまのところ注意するのは困難な気がします。 具体的には * ブロックパラメータにローカル変数以外は使わない * ブロックパラメータ(と同名の変数を)外側で使わない というルールに従っていれば問題は(あまり)発生しないのでは、と。 |ブロックローカル変数を使いたい時には、lambda {|a| a = value ...}.call と |する、というのはちょっとあまりにあんまりかなぁ。 いや、わたしも同様のことをする let {|a| ... } というのを考えました。これもなかなか気に入ってはいるのですが、 初期化がちょっと面倒ですね。 まつもと ゆきひろ /:|)