There are numerous examples of using FunctionalJava:

Release Notes

Release notes are available from the download page. Alternately you can use the index of release notes.


FunctionalJava 5.x uses Java 8. Future releases will follow the Java long term support model, the future series 6.x uses Java 11 and 7.x uses Java 17.

The FunctionalJava 4.x series uses the Retro Lambda project to backport Java 8 lambdas to Java 6 bytecode. This requires access to both JDK 6 and 8. The build system requires the environment variables JAVA6_HOME and JAVA8_HOME to refer to the appropriate directories.

Building is done using Gradle. In the root directory run:


This will download the Gradle build tool and necessary dependencies and build FunctionalJava.


Functional Java is licensed under the BSD 3 license, available at (3-clause license,