12.09.2011 12:50
Eine Lambda-Syntax für Java
Bekommt Java seine eigene Syntax für Lambda-Ausdrücke? Ein erster Grundstein scheint gelegt, Brian Goetz, Language Architect für Java bei Oracle, meldete sich in der lambda-dev-Mailingliste mit der Nachricht, dass man sich auf eine Syntax für Lambda-Ausdrücke in Java geeinigt hätte. Demnach werde man sich im Wesentlichen an der aus C# bekannten Syntax orientieren, die sich auch schon in Scala bewährt hätte.
Lambda-Syntax in C#
lambda = ArgList Arrow Body
ArgList = Identifier
| "(" Identifier [ "," Identifier ]* ")"
| "(" Type Identifier [ "," Type Identifier ]* ")"
Body = Expression
| "{" [ Statement ";" ]+ "}"
Das erlaube dann Ausdrücke wie:
x => x + 1
(x) => x + 1
(int x) => x + 1
(int x, int y) => x + y
(x, y) => x + y
(x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }
() => { System.out.println("I am a Runnable"); }
Etwas Feintuning will man noch der konkreten Darstellung angedeihen lassen, auch zur Syntax für die Methodenreferenzierung wird man erst noch eine Entscheidung treffen müssen, so Goetz.
Lambda-Ausdrücke sind praktisch eine Weiterentwicklung anonymer Funktionen, die Ausdrücke und Anweisungen enthalten können und sich zum Beispiel für die Erstellung von Ausdrucksbaumstrukturen (Expression Trees) oder Delegaten (Objekte, die eine Referenz auf statische oder nicht-statische Funktionen enthalten) eignen.
(rl)
Ab sofort kann man sich mit Vorträgen für die neue Konferenz zu Agile ALM, Continuous Delivery und DevOps bewerben.
Am 5. und 6. Juni trifft sich in Toulouse die Eclipse-Community zur Erstauflage der EclipseCon France. Bis 26. Mai kann man sich noch zum Frühbucherpreis registrieren.