Zitat von
Slaan
Lambdas gibts im übrigen auch schon seit ein paar Jahren in Java
Nein. Das, was Java Lambda nennt, ist nur ein schwacher Abklatsch. Es können innerhalb des Lambda-Ausdrucks nur außerhalb definierte Variablen verwendet werden, die "effektiv final" sind. Darunter zählen Klassenattribute und lokale Variablen, die nicht verändert werden. Parameter der Methode sind nicht "effektiv final". Man kann also sowas wie z.B. in Python nicht in Java schreiben:
Code:
>>> def f(x):
return lambda y: x + y
>>> g = f(2)
>>> g(1),g(2),g(3)
(3, 4, 5)
Was doch eine erhebliche Einschränkung ist.