Functional programming library for modern Java
- Link: github.com/2bllw8/unf
- License: BSD-3-Clause
- Language: Java
Key features
- Optics: a first-class, composable notion of substructure.
- Annotation Processor: automatically generate optics for record classes:
- For each record component, generate a
Lens. - For each record component of type
List, also generate aTraversal.
- For each record component, generate a
- Annotation Processor: automatically generate optics for record classes:
- Either monad: represent values with two possibilities.
- Maybe monad: encapsulate an optional value.
- Map: purely functional and immutable map (dictionary) implementation.
- Function* interfaces with partial application.
Usage
- Available on Maven Central
- JavaDoc available on GitHub pages
dependencies {
// Core library
implementation "cc.chokoka:unf.lib:2.0.0"
// Optional annotation processor for automatic lens
// generation for record classes
annotationProcessor "cc.chokoka:unf.processor:2.0.0"
}