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
forQuad ... Decade
- Unit-Tests (instead of FunctionalDemo.java)
- Types
Curried
andUncurried
for such forms of the methods
Contact me on github if you are interested in this project.
2 thoughts on “Functional Java Tuples”