You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Functional Java is an open source library facilitating functional programming in Java. The library implements numerous basic and advanced programming abstractions that assist composition oriented development. Functional Java also serves as a platform for learning functional programming concepts by introducing these concepts using a familiar language.
10
10
11
-
The library is intended for use in production applications and is thoroughly tested using the technique of automated specification-based testing with ScalaCheck and Functional Java's quickcheck module. Functional Java is compiled with Java 8 targeting Java 7 bytecode. The use of lambdas within the project are backported with the Retro Lambda library, supporting Java versions 5 to 8.
11
+
The library is intended for use in production applications and is thoroughly tested using the technique of automated specification-based testing with ScalaCheck and Functional Java's quickcheck module. Functional Java is compiled with Java 8 targeting Java 7 bytecode. The use of lambdas within the project are backported with the Retro Lambda library, supporting Java versions 6 to 8.
12
12
13
13
Functional Java provides abstractions for the following types:
14
14
15
-
* Basic Data Structures - total and partial functions, products, unit, option, unbiased and right biased unions (either and validation).
* Other Abstractions - monoid, semigroup, natural, random number generator, reader, writer, state, input/output, parser, zipper, specification based testing (quickcheck), actors, optics (lens, prism, fold, traversal and others), concurrency and type conversion.
18
18
19
19
== URLs
@@ -35,37 +35,43 @@ The Functional Java artifact is published to Maven Central using the group `org.
35
35
* Java 8 specific support (`functionaljava-java8`)
36
36
* property based testing (`functionaljava-quickcheck`)
37
37
38
-
The latest stable version is `4.4`. This can be added to your Gradle project by adding the dependencies:
38
+
The latest stable version is `4.5`. This can be added to your Gradle project by adding the dependencies:
FunctionalJava uses the Retro Lambda project to backport Java 8 lambdas to Java 7 bytecode. This requires access to both JDK 7 and 8. The build system requires the environment variables `JAVA7_HOME` and `JAVA8_HOME` to refer to the appropriate directories.
72
+
FunctionalJava 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.
67
73
68
-
Building is done using Gradle 2.4. In the root directory run:
74
+
Building is done using Gradle 2.10. In the root directory run:
69
75
----
70
76
./gradlew
71
77
----
@@ -94,6 +100,7 @@ A more complete description of the features mentioned above are:
94
100
** Immutable set implementation using a red/black tree (`fj.data.Set`).
95
101
** Immutable multi-way tree - aka rose tree (`fj.data.Tree`).
96
102
** Immutable tree-map using a red/black tree implementation (`fj.data.TreeMap`).
103
+
** Difference lists, a highly performant list.
97
104
* Other Abstractions
98
105
** Monoid (`fj.Monoid`).
99
106
** Semigroup (`fj.Semigroup`).
@@ -109,6 +116,7 @@ A more complete description of the features mentioned above are:
** Fully operational Actors for parallel computations (`fj.control.parallel`) and layered abstractions such as parallel-map, map-reduce, parallel-zip.
111
118
** Optics for updating immutable data including lens, prism, iso, optional, traversal, getter, fold and setter. Inspired by the Scala Monocle library (https://github.com/julien-truffaut/Monocle) and the Haskell lens library (https://github.com/ekmett/lens).
Copy file name to clipboardExpand all lines: etc/release-process.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -33,9 +33,9 @@ Create tag:
33
33
34
34
Create the next version of the release notes with empty fields using the template.
35
35
36
-
Update the website and Github README.adoc. This includes adding any features to the home page and features page. Updating the doc page with javadoc links. Update the download page with a link to the latest release notes.
37
-
38
36
Copy the generated javadoc for each component to the website repositories' master branch under /javadoc/<version>. Commit the javadoc and push.
39
37
38
+
Update the website and Github README.adoc. This includes adding any features to the home page and features page. Updating the doc page with javadoc links. Update the download page with a link to the latest release notes.
39
+
40
40
Send a message to the group and social media about the release, TODO.
0 commit comments