Functional Programming for Java—a pre-Java-8 experiment.