ささだです。

 最近のまつもとさんの日記(http://www.rubyist.net/~matz/)でブロックパ
ラメータの新記法についての検討を行っているようですが、適当にコピペしてみ
ました。

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby2.0LambdaWithLocalVariable

 間違いなどがあればご指摘ください。


 ところで、この議論、「(1) ブロック付きメソッド呼び出し時に指定するブ
ロック」のための表記と、「(2) Proc オブジェクトを作る」ための表記がある
と思うのですが、この関係がよくわかりません。

 (1) は、

  [1,2,3].map{|x| x * x}

 に代わる表記で、

 (2) は

  pr = lambda{|x| ...}
(最近では pr = {|x| ...})

 に代わる記法ということですよね。

 どちらも同様の記法にすると思っていたのですが、http:
//www.rubyist.net/~matz/20050701.html#p02 では、

> -> (x,y) { ... }
> しかし、ブロックとして使う場合は
> { -> (x, y) ... }

 と書かれているので、別々にする、ということでしょうか。



 今までブロックパラメータはブロックの中に書かれていた(do/end 、{} で囲
まれていた)ので、それを外に出す表記は今のところ個人的には抵抗があります。

 それよりも気になっているのがブロックパラメータのための括弧の省略が可能
か、ということだったり。

-- 
// SASADA Koichi at atdot dot net
//