GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - umerazad/functionaljava: Functional Java

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

114 Commits
114 Commits

Folders and files

NameName
Last commit message
Last commit date
.idea
.idea
 
 
core
core
 
 
demo
demo
 
 
etc
etc
 
 
fjscala
fjscala
 
 
project
project
 
 
.gitignore
.gitignore
 
 
README
README
 
 
build-maven.xml
build-maven.xml
 
 
functionaljava.iml
functionaljava.iml
 
 
pom.xml
pom.xml
 
 
sbt
sbt
 
 
sbt-launch-0.7.4.jar
sbt-launch-0.7.4.jar
 
 
sbt.boot.properties
sbt.boot.properties
 
 
sbt.cmd
sbt.cmd
 
 

Repository files navigation

Functional Java is an open source library that seeks to improve the experience of using the Java programming language in a production environment. The library implements several advanced programming concepts that assist in achieving composition-oriented development. Functional Java is written using vanilla Java 1.5 syntax and requires no external supporting libraries. The JAR file will work with your Java 1.5 project without any additional effort.

Functional Java 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 includes the following features:

  * Fully operational Actors for parallel computations (fj.control.parallel) and layered abstractions such as parallel-map, map-reduce, parallel-zip.
  * A package (fj.data.fingertrees) providing 2-3 finger trees for a functional representation of persistent sequences supporting access to the ends in amortized O(1) time.
  * Type-safe heterogeneous list (fj.data.hlist) for lists of elements of differing types without sacrificing type-safety.
  * Monadic parser combinators for writing parsers by combining smaller parsers using composition.
  * Conversion of data types to/from standard Java types.
  * 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 data type — compositional exception handling (fj.data.Either).
  * Monoid (fj.Monoid).
  * Functions with arity 1 to 8.
  * Products of 1 to 8.
  * Configurable equality and hash-code for HashMap and HashSet.
  * Natural number data type (fj.data.Natural).
  * Immutable set implementation using a red/black tree.
  * Immutable multi-way tree — aka rose tree (fj.data.Tree).
  * Immutable tree-map using a red/black tree implementation (fj.data.TreeMap).
  * Zipper implementations for streams and trees.
  * Automated specification-based testing framework (fj.test).

About

Functional Java

functionaljava.org/

Resources

Readme
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.