ad84 schrieb am 16. August 2013 12:48
> Lambda-Funktionen werden erst dank Currying, Closures, Continuation
> passing, Macros (in LISP) und was weiß ich, interessant.
Anders gesagt, um die Vorteile Funktionaler Programmierung nutzen zu
können, braucht man Funktionale Programmierung.
Andernfalls sind Lambda-Funktionen tatsächlich nichts anderes als
eine kompakte Schreibweise für Funktionszeiger und anonymer inner
classes.
Konsequenterweise kann man sie ja auch in Java 8 als Funktionspointer
benutzen.
public class Test
{
private static void foo() {}
private static void bar() {}
public static void main(String... arg)
{
Runnable r=condition()? Test::foo: Test::bar;
// ...
r.run(); // call foo() or bar()
}
}
> Lambda-Funktionen werden erst dank Currying, Closures, Continuation
> passing, Macros (in LISP) und was weiß ich, interessant.
Anders gesagt, um die Vorteile Funktionaler Programmierung nutzen zu
können, braucht man Funktionale Programmierung.
Andernfalls sind Lambda-Funktionen tatsächlich nichts anderes als
eine kompakte Schreibweise für Funktionszeiger und anonymer inner
classes.
Konsequenterweise kann man sie ja auch in Java 8 als Funktionspointer
benutzen.
public class Test
{
private static void foo() {}
private static void bar() {}
public static void main(String... arg)
{
Runnable r=condition()? Test::foo: Test::bar;
// ...
r.run(); // call foo() or bar()
}
}