Achieving Functional Programming in Java
summary
A Java library called Lambda library provides first‑class functors, applicatives, monads, coproducts (Either/Maybe), lazy evaluation, profunctor optics, semigroups/monoids, HLists/HMaps and an IO monad that composes and parallelizes via applicative sequencing (defaults to fork/join). Code compiles on Java 8+, encodes partial operations as total values, and is MIT‑licensed; about 30 applications at the author’s firm use it in production, and examples shown compile and run as advertised.
AI-written summary · about
chapters (13)
- 0:00Start
- 3:17Background on the Developers
- 4:43Guiding Principles
- 6:48Partial Operations Should Be Encoded as Total Operations
- 15:41Functor Interface
- 16:33Flat Map on an Optional
- 23:50Fixed Messages
- 25:00Pure and Impure Operations Should Be Separate
- 29:51Heterogeneous Data Structures
- 35:00Semigroup
- 36:43Functional Iteration Patterns
- 38:25Types of Heterogeneous Data Structures
- 42:44Canonical Operations
related talks
52mFunctional Programming with Java 8
53mLambdas && Monads
55mFunctional Programming Patterns with Java8
01h 06mProject Lambda: Simplifying Concurrent Programming in Java SE 8
51mFunctional Programming with Java
41mThe... wonderful? World of lambdas
01h 02mFunctional Programming in Java, Groovy, and Kotlin
40mA Little Bit of Functional, a Little Bit of Java(...)
