2 ms·
Well, even if it can be done, why? There are perfectly fine languages that don't fight you every step of the way. This, btw, is the content of the front page
by earl 18y ago
Well, even if it can be done, why? There are perfectly fine languages that don't fight you every step of the way.
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]