Preamble

Lasaris

Lambda výrazy

  • Velmi malá část skutečného funkcionálního jazyka je obsažena v Javě 8.
  • Jde o tzv. lambda výrazy (Lambda expressions).
  • Umožňují syntakticky elegantní hutný zápis pomocí symbolu šipky, např. x -> x+1.
  • V zásadě bylo i dříve možné realizovat pomocí rozhraní s jednou metodou, implementovaných obvykle anonymní vnitřní třídou.

Podpora v jazyce

  • Syntaktický konstrukt ->, např.
  • (Person p) → p.printInfo();

Funkcionální rozhraní

  • Podpora v knihovnách (Java Core API)
  • funkcionální rozhraní (functional interfaces) v balíku java.util.functions
  • většinou jako generická (typově parametrizovaná) rozhraní, např.
    Predicate<T>

    s jednou metodou boolean test(T t)

    Consumer<T>

    s jednou metodou void accept(T t)

Dokumentace

Příklad

  • Předávání booleovských funkcí jako predikátů do metod.