Re: Auto converting Python lambdas to functional interface impl.

Jeff Allen <[email protected]> Wed, 27 Jan 2021 19:46:21 +0000
Newsgroups gmane.comp.lang.jython.devel
Message-ID <[email protected]>
Hi Nicolas,

This has been suggested as a feature ISTR but is way beyond any plan for 
2.7, which is bug-fixing at best. I'm giving nearly all my time to a 
possible Jython 3.

I agree it seems a natural feature to expect, that Python lambdas (or 
functions in general) should match an argument that is a functional 
interface (of the right shape).

Jeff Allen


On 27/01/2021 16:51, Nicolas Falliere wrote:
> Hello dev team,
>
> int foo(BiFunction<Integer, Integer, Integer> f) {
>   return f.apply(1, 2);
> }
> foo((a, b) -> a + b );  // ok
>
> I was wondering if Jython 2.7 would auto-convert to idiomatic lambdas, 
> and tried:
> foo(lambda a, b: a + b)
>
> alas, I got a
> TypeError: can't convert <function <lambda> at 0x3> to 
> java.util.function.BiFunction
> (same problem with a single-arg lambda, e.g. foo(lambda (a, b): a + b))
>
> Any plan to support that in a future maintenance release, or maybe for 
> Jython 3?
>
> Thanks,
> --
> Nicolas Falliere ([email protected] <mailto:[email protected]>)
> JEB Decompiler, Founder and Architect
> PNF Software <https://www.pnfsoftware.com/>| Follow us on Twitter 
> <https://twitter.com/jebdec> | Join us on Slack 
> <https://www.pnfsoftware.com/chat> | Bulletin Board 
> <https://www.pnfsoftware.com/forum>
>

_______________________________________________
Jython-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jython-dev