Functional Java Tuples

Just a prototype so far:

https://github.com/claudemartin/FunctionalJavaTuples

The generic types of the arguments are always A, B, C, etc. The result is of generic type R.

It’s my goal to have three forms:

  • Method/Lambda Form: Takes n arguments
  • Curried Form: Methods are chained A -> B -> C -> ... -> R
  • Uncurried Form: Takes a tuple (A,B,C,...) -> R

The idea is to add all the basic functions of Haskell to a project that then uses javatuples.org to have a way of using tuples for functional programming in Java 8.

  • curry / uncurry
  • zip / unzip
  • composition (“.”-operator in Haskell)
  • pipes (“|>” in F#)
  • partial application
  • fn.arity() returns the arity of the function.
  • Convert Suppliers and Consumers to Functions.

There’s still a lot to do…

List of TODOs:

  • Implementations of Fn for Quad ... Decade
  • Unit-Tests (instead of FunctionalDemo.java)
  • Types Curried and Uncurried for such forms of the methods

Contact me on github if you are interested in this project.

2 thoughts on “Functional Java Tuples”

Leave a Reply

Your email address will not be published. Required fields are marked *