Thanks for the explanations! (and great achievement!) On Wed, Oct 19, 2016 at 1:43 AM, daniel_sun <realblue...@hotmail.com> wrote:
> To be exact, lambda expression of Groovy enhances the syntax of Java > lambda expression, e.g. lambda expression of Java is not callable. > > Cheers, > Daniel.Sun > > > > 在 "Remi Forax [via Groovy]" <ml-node+[hidden email] > <http:///user/SendEmail.jtp?type=node&node=5736184&i=0>>,2016年10月19日 > 上午4:36写道: > > I would say Groovy Closure with the Java syntax. > > Rémi > > On October 18, 2016 8:21:34 PM GMT+02:00, Guillaume Laforge <[hidden > email]> wrote: >> >> Is it actually Groovy closures? or "real" Java lambdas? >> >> On Tue, Oct 18, 2016 at 7:42 PM, Jochen Theodorou <[hidden email]> 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/ >>>> 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. >>>> >>> >>> >> >> >> -- >> 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. > > ------------------------------ > 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- > tp5736169p5736179.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-tp5736169p5736184.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>