mainFunctionals Library for Java - Summary

Membership Info
Project Admin:
1 active member

Group identification
Id: #3308
System Name: lambda4j
Name: Functionals Library for Java
Group Type: non-GNU software and documentation

Search in this Group


This project is not part of the GNU Project.

The Functionals Library for Java (lambda4J) brings constructs of functional programming into the Java programming language system. Specifically, as I am required to use Java for some things at my place of work, I find a need for higher-order functions and first-class functions ... moreso than what the Java specification provides.

I have implemented some higher-order functions (map/2, fold/3 and fold/2, of course, and filter/2, partition/2, any/2 and every/2) that operate with a functional (reified into the Java object system) and either an iterator or a java.util.List instance, and several other function constructors (identity/1, complement/1, compose/2, conjoin/2, disjoin/2, curry/2).

Much work needs to be done! I have integrated lambda terms into the Java language: this feature must be tested thoroughly. I have also just completed an implementation of a lazy list (that allows for lazy mapping and filtering as well as evaluation). Head/tail (aka car and cdr) are now available to the Java programmer using lambda4j.

This is a working set of libraries that I wish to provide to the community. I am sure that other functional programmers using Java will benefit from functional constructs, and other input will help make this project a better one for the user.

Registration Date: Tue 12 Nov 2002 05:11:13 AM UTC
License: GNU General Public License v2 or later
Development Status: 3 - Alpha


Latest News rss feed
Shifted from lazy lists to iterators
     posted by dauclair, Thu 08 May 2003 05:41:08 AM UTC - 0 replies

The functional library had a lazy list implementation to facilitate dealing with infinite lists and lazy (vice eager) programming. Field testing this library, however, indicated that java.util.Iterator was just as effective and less buggy to boot, so the library now uses iterators.

Commented out the logical framework, lazy lists, the tests, and a-lists, as they all depend on lazy lists. ... As I convert those packages from lazy lists to iterators, they will become part of the build again.

The Beginnings of a Logical Framework
     posted by dauclair, Sun 19 Jan 2003 04:16:55 AM UTC - 0 replies

I have added functionality that provides a function test to function dispatch map. This will be familiar to those who have worked with Prolog -- one builds a series of predicates (all of the same name) with different activation criteria. This ...

[Read more]
Association Lists
     posted by dauclair, Sun 19 Jan 2003 04:10:50 AM UTC - 0 replies

Added the association list type to the lists package. Association lists are lists of pairs (tuples) that allow for many-to-many mappings between keys and values. Association lists can be looked on as a list representation of multimaps, so this implementation makes it my third programming language for which I've implemented (or fixed) the multimap collection type.

Ant build.xml Script In Place
     posted by dauclair, Tue 10 Dec 2002 02:39:08 AM UTC - 0 replies

I've added a wrapper to the lambda parser system (lambda.lattice) that interprets command-line arguments and performs the appropriate parser commands therefrom. I've also created an ant build.xml file that compiles the entire system with two commands: 'ant' and 'ant deliver'. Very nice.

[Submit News]
[10 news in archive]

Communication Tools
 Tech Support Manager (open items: 0, total: 0)
  - Browse open items
  - Submit a new item
 Mailing Lists (0 public mailing lists)

Development Tools
 Bug Tracker (open items: 0, total: 0)
  - Browse open items
  - Submit a new item
 Task Manager (open items: 9, total: 10)
  - Browse open items
  - Submit a new item
 Patch Manager (open items: 0, total: 0)
  - Browse open items
  - Submit a new item

Back to the top

Powered by Savane 3.3