"Real lambdas" with the full invokedynamic treatment is a big job, and requires static type inference. Given that Groovy can already coerce closures into functional interfaces (dynamically), we could implement the whole metafactory-stuff with the static compilation, and as a separate effort, right?
Also: Fantastic job, Daniel! -Jesper > On 18. okt. 2016, at 22.46, Guillaume Laforge <glafo...@gmail.com> wrote: > > I assumed so, but wanted to be sure :-) > >> On Tue, Oct 18, 2016 at 10:35 PM, Remi Forax <fo...@univ-mlv.fr> wrote: >> I would say Groovy Closure with the Java syntax. >> >> Rémi >> >>> On October 18, 2016 8:21:34 PM GMT+02:00, Guillaume Laforge >>> <glafo...@gmail.com> wrote: >>> 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/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 / Google+ >> >> -- >> Sent from my Android device with K-9 Mail. Please excuse my brevity. > > > > -- > Guillaume Laforge > Apache Groovy committer & PMC Vice-President > Developer Advocate @ Google Cloud Platform > > Blog: http://glaforge.appspot.com/ > Social: @glaforge / Google+