<dependency>
<groupId>org.functionaljava</groupId>
<artifactId>functionaljava</artifactId>
<version>4.8</version>
</dependency>
Function<Integer, Integer> addOne = x -> x + 1;
Function<Integer, Integer> multiplyByTwo = x -> x * 2;
Function<Integer, Integer> combinedFunction = addOne.andThen(multiplyByTwo);
Function<Integer, Integer> addOne = x -> x + 1;
Function<Integer, Function<Integer, Integer>> add = x -> y -> x + y;
Lazy<Integer> lazyValue = Lazy.lazy(() -> expensiveComputation());
int result = lazyValue.get();