groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Theodorou <blackd...@gmx.org>
Subject Re: Lambda expression for Groovy 3
Date Tue, 18 Oct 2016 17:42:11 GMT

hah, I knew you can do it ;)

On 18.10.2016 18:34, daniel_sun wrote:
> Jochen, lambda expression is fully supported now :)
>
> https://github.com/danielsun1106/groovy-parser/commit/c380e4230ecef350855b9f56a220411635a7ff87
>
> https://github.com/danielsun1106/groovy-parser/blob/master/src/test/resources/core/Lambda_01x.groovy
>
>
> Cheers,
> Daniel.Sun
>
>
>
> 在 "Jochen Theodorou [via Groovy]" <ml-node+[hidden email]
> </user/SendEmail.jtp?type=node&node=5736176&i=0>>,2016年10月18日
00:37
> 写道:
>
>
>
>     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
>
>
>     ------------------------------------------------------------------------
>     If you reply to this email, your message will be added to the
>     discussion below:
>     http://groovy.329449.n5.nabble.com/Lambda-expression-for-Groovy-3-tp5736169p5736171.html
>
>     To unsubscribe from Lambda expression for Groovy 3, click here.
>     NAML
>     <http://groovy.329449.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>
>
>
> ------------------------------------------------------------------------
> View this message in context: Re: Lambda expression for Groovy 3
> <http://groovy.329449.n5.nabble.com/Lambda-expression-for-Groovy-3-tp5736169p5736176.html>
> Sent from the Groovy Dev mailing list archive
> <http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html> at Nabble.com.


Mime
View raw message