Functional Java
functionaljava.org
functionaljava.org
This, btw, is the content of the front page since the site is hosed.
[quote]
Functional Java is an open source library that aims to prepare the Java programming language for the inclusion of closures. It also serves as a platform for learning functional programming concepts by introducing these concepts using a familiar language. The library is intended for use in production applications and is thoroughly tested using the technique of automated specification-based testing with ScalaCheck.
Functional Java currently includes the following algebraic structures:
* Immutable, in-memory singly linked list (fj.data.List)
* Immutable lazy singly linked list (fj.data.Stream)
* Array wrapper (fj.data.Array)
* Optional value type-safe null (fj.data.Option)
* Disjoint union a superset of exception handling (fj.data.Either)
* Monoid (fj.pre.Monoid)
* Functions with arity 1 to 8 usable with Java 7 closure syntax
* Products of 1 to 8
Functional Java now includes the Reductio automated specification-based testing framework.Functional Java includes usage examples and notably, code examples that make use of the Java 7 BGGA proposal syntax. Here is one such example (import statements omitted) that maps a transformation across an array by adding 42 to each element.
final Array<Integer> a = array(1, 2, 3);
final Array<Integer> b = a.map({int i => i + 42});
arrayShow(intShow).println(b); // {43,44,45}
[/quote]