groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From daniel_sun <realblue...@hotmail.com>
Subject Re: Lambda expression for Groovy 3
Date Tue, 18 Oct 2016 23:50:41 GMT
It is really a big job to implement the real lambda in the backend. So far so good ;) Thank
you, Jesper.

Cheers,
Daniel.Sun



在 Jesper Steen Møller [via Groovy] <ml-node+s329449n5736181h69@n5.nabble.com>,2016年10月19日
上午7:16写道:

"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 <[hidden email]> wrote:

I assumed so, but wanted to be sure :-)

On Tue, Oct 18, 2016 at 10:35 PM, Remi Forax <[hidden email]> 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 <[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<http://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.



--
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-tp5736169p5736181.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-tp5736169p5736186.html
Sent from the Groovy Dev mailing list archive at Nabble.com.
Mime
View raw message