Hi everyone,

I know that one of the original reasons for having -> was because it  
allowed for default arguments. Since that has since been fixed for ||  
args, what about simply moving where the arguments for -> are?

Rather than:

->(a,b) { a + b }

you have:

->{ |a,b| a + b }

I find that quite a bit easier to read, and it's syntax everyone is  
used to. In addition, it removes the case that I find incredibly hard  
to read:

-> a, b { a + b }

For defaults, from:

-> a = 1 { a + 3 }

to:

->{ |a=1| a + 3 }

Seems like it would be fine to allow space between -> and { as it is  
now as well:

-> { |a,b| a + b }

I think of this as sort of a middle ground between the current ->  
implementation and the bare {} implementation. It unifies the idea of  
a separate identifier with syntax that all ruby programmers are  
accustom to today.

  - Evan


On Aug 23, 2009, at 9:21 PM, Yukihiro Matsumoto wrote:

> Hi,
>
> In message "Re: [ruby-core:25068] Re: Proposal: Simpler block format"
>    on Mon, 24 Aug 2009 13:03:53 +0900, brian ford <brixen / gmail.com>  
> writes:
>
> |Could we add def {} and see by usage which prevails? Or take a
> |world-wide vote (perhaps weighted by number of lines of Ruby code
> |written by the voter)?
>
> The def keyword is to define a method.  I assume your def {} proposal
> is to declare an anonymous procedure object, which is NOT a method at
> all.  For me, the difference is big enough to reject the proposal.
>
> 							matz.
>
>