ささだです。
最近のまつもとさんの日記(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
//