Hi,

In message "Re: Default argument values for blocks"
    on Wed, 12 Oct 2005 02:25:33 +0900, Yukihiro Matsumoto <matz / ruby-lang.org> writes:

||Is there a reason why I can't do this?
||
||   foo = lambda { |foo = bar| puts foo }
||   foo.call
||
||I can't think of any good reason why this isn't valid.
|
|Mostly because yacc does not allow it.  It confuses 
|
|  lambda { |foo = bar| puts foo }
|
|as 
|
|  lambda { |foo = (bar| puts foo) }
|
|and causes syntax error.

For your information, you can do

  foo = ->(foo="bar"){puts foo}
  foo.call

in 1.9.

							matz.