This repo serves as a place to practice functional programming in Java and to understand functional programming by building minimal versions of known Haskell-concepts in Java. Multiple FP-libraries exist for Java, but building these concepts myself help me learn them better.
The repo uses:
- Algebraic Data Types
- Sealed classes and interfaces
- Exhaustive pattern matching
- Unnamed patterns and variables
- Records
- Value types
Todo's:
- Either a b = Left a | Right b
- Maybe a = Just a | Nothing
- Lenses
- Prisms
- Traversables
- Monads
- Applicatives
- Functors
- Monoids
- Semigroups
- Partial functions
Haskell books I read:
- The Haskell Book
- Haskell in Depth
Video's
- Josh Block about ?super vs ?extend (wildcards): https://youtu.be/V1vQf4qyMXg?t=1497