groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remi Forax <fo...@univ-mlv.fr>
Subject Re: Lambda expression for Groovy 3
Date Tue, 18 Oct 2016 20:35:38 GMT
I would say Groovy Closure with the Java syntax.

Rémi 

On October 18, 2016 8:21:34 PM GMT+02:00, Guillaume Laforge <glaforge@gmail.com> wrote:
>Is it actually Groovy closures? or "real" Java lambdas?
>
>On Tue, Oct 18, 2016 at 7:42 PM, Jochen Theodorou <blackdrag@gmx.org>
>wrote:
>
>>
>> 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/c380e4
>>> 230ecef350855b9f56a220411635a7ff87
>>>
>>> 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.
>>>
>>
>>
>
>
>-- 
>Guillaume Laforge
>Apache Groovy committer & PMC Vice-President
>Developer Advocate @ Google Cloud Platform
>
>Blog: http://glaforge.appspot.com/
>Social: @glaforge <http://twitter.com/glaforge> / Google+
><https://plus.google.com/u/0/114130972232398734985/posts>

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
Mime
View raw message