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でデフォルト引数に式は書けないということか.しかし,->でλって発想はなかったなぁ.
ところでブロックのデフォルト引数に式を書きたいときはどうすればいいんだろう?