Is it actually Groovy closures? or "real" Java lambdas? On Tue, Oct 18, 2016 at 7:42 PM, Jochen Theodorou <blackd...@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>