# In this post, I'll state an opinion only about bare {}.

Ultimately this discussion may come down to the question:
Which offers more favorable balance between succinctness and explicitness?

The notation {|x| ... } or { ... } as proc is succinct. It may make
your code shorter, and helps your DSL powerful.

In this thread, it is mentioned that { ... } may confuses human while
{|x| ... } is OK.

But I think both are OK, because => or identifier+colon are highly
visible. It is difficult for readers to overlook it. Although it may
confuse them if very long lines of code come before =>, it's a special
case, in fact, it's a bad signal for the code itself.

In my opinion, it improves Ruby at least a little, preserving its readability.



Here is a list of pros for this new notation :-)

* Easy to read/write `{ ... }.should raise_error(AnError)` in rspec
* Easy to read/write procs as elements of an Array or a value of a Hash
* It may help golfers
* It doesn't need more keywords or symbols
* Multiple proc arguments. e.g.

    my_while({ a < 5 }) do
      ...
    end

    see also: http://pragdave.blogs.pragprog.com/pragdave/2008/05/new-lambda-synt.html