Currently it leverages the power of closure, i.e. lambda expression for groovy is a subclass of closure.
Cheers, Daniel.Sun 在 "Guillaume Laforge [via Groovy]" <ml-node+s329449n5736178...@n5.nabble.com>,2016年10月19日 上午2:21写道: 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> ________________________________ 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-tp5736169p5736178.html To unsubscribe from Lambda expression for Groovy 3, click here<http://groovy.329449.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5736169&code=cmVhbGJsdWVzdW5AaG90bWFpbC5jb218NTczNjE2OXwxMTQ2MjE4MjI1>. 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: http://groovy.329449.n5.nabble.com/Lambda-expression-for-Groovy-3-tp5736169p5736183.html Sent from the Groovy Dev mailing list archive at Nabble.com.