Ruby1.9挙動クイズ
ねんがんの デフォルトひきすうをてにいれたぞ!
(1)
proc {|x = 3| x }
(2)
proc {|x = 3 + 4| x }
(3)
->(x = 3 + 4) { x }
な なにをする きさまらー!
(1)
=> #<Proc:0x135010@(irb):7>
(2)
SyntaxError: (irb):8: syntax error, unexpected '+', expecting '|'
(3)
=> #<Proc:0x12a908@(irb):9 (lambda)>
つまり,lambdaでないProcでデフォルト引数に式は書けないということか.しかし,->でλって発想はなかったなぁ.
ところでブロックのデフォルト引数に式を書きたいときはどうすればいいんだろう?