- Algebra:
F[A] => A
- Coalgebra:
A => F[A]
- AlgebraM:
F[A] => M[A]
- CoalgebraM:
A => M[F[A]]
- RAlgebra:
F[(R, A)] => A
- RCoalgebra
A => F[Either[R, A]]
- RAlgebraM:
A => M[F[Either[R, A]]]
- RCoalgebraM:
A => M[F[Either[R, A]]]
Fold(Recursion) | Unfold (Corecursion) | General |
---|---|---|
cata | ana | hylo |
F[A] => A |
A => F[A] |
|
para | apo | |
F[(R,A)] => A |
A => F[Either[R,A] |
> sh console.sh
- Practical Recursion Schemes
- Time traveling
- Functional Programming with Bananas Lenses Envelop es and Barb ed Wire
- AST playground: recursion schemes and recursive data
- Domain Modelling with Haskell: Factoring Out Recursion
- Recursion Schemes in Scala - An Absolutely Elementary Introduction
- F-Algebras
- Introduction to Recursion Schemes with Matryoshka
- Awesome Recursion schemes
- An Introduction to Recursion Schemes
- Those 10000 classes I never wrote
- Sorting slower
- Time Traveling Recursion Schemes
- Recursion Schemes