On 17.10.2016 17:40, daniel_sun wrote:
Hi all,

       Lambda expression for Groovy has been completed with a little
limitation, which is due to the existing closure whose parameter list can be
ambiguous to lambda expression, e.g. {a -> a} which can be parsed as a
lambda expression in a block, but we expect it a closure.

I think that limitation is ok

In order to
resolve the ambiguities, the parentheses for parameters is a must, e.g.
*Java8* allows parentheses-less parameter for lambda when the parameter is
single and without type: e -> e, but *Groovy* only allows parameter with
parentheses: (e) -> e.

       *Here are some examples for lambda expression for Groovy:*
assert 9 == [1, 2, 3].stream().map((e) -> e + 1).reduce(0, (r, e) -> r + e)

which means you cannot write
assert 9 == [1, 2, 3].stream().map(e -> e + 1).reduce(0, (r, e) -> r + e)

which I find not so ok. Here again it would be no problem if it is recognized as Closure if that is more easy to accomplish.

bye Jochen

Reply via email to