もりきゅうです。

matz / ruby-lang.org (Yukihiro Matsumoto) wrote:
> ブロックパラメータの最後の値を持ち出すのに使っている例はそれ
> なりにあるようです。ということで、互換性の観点から今のままで
> ブロックパラメータをブロック局所変数にすることはできません。
> 
> 以前、こういうのを考えてました。
> 
>   foo{<a>...}
> 
> で、aをブロック局所にする。
> 
> 別にあきらめてませんが、なかなか実装できなくて(記法に対する
> 反対も結構あったし)、パラメータだけ局所化できても、変数も局
> 所化したいというニーズにどう対応するかなどの課題もありますし。

パラメータを局所化したい人は変数も局所化したいだろうということで

foo{private|a|...}
foo do local|a|... end

のように隙間で指定してみるというのはどうか。

|| がないときはどうするか?

foo{local ...}
foo do private ... end

まあ許せる。互換性もとれる。

----
YOSHIDA Kazuhiro  moriq / moriq.com  http://www.moriq.com/