- Algebra of Programming - R. Bird, O. de Moor(1997)
- The Fun of Programming - J. Gibbons, O. de Moor(2003)
-
Metamorphisms: Streaming Representation-Changers - J. Gibbons(2005) (fold and unfold combined)
-
Fission for Program Comprehension (paramorphisms and more)
-
The Under−Appreciated Unfold - J. Gibbons(1998) (anamorphisms)
-
When is a function a fold or an unfold? - J. Gibbons et al.(2001)
-
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire - E. Meijer(1991)
- Patterns in Functional Programming (J. Gibbons' blog)
- Recursion Schemes: A Field Guide (Redux) - E. Kmett(2009)
- Inverting a fold
- Recursion schemes for dummies?
- What constitutes a fold for types other than list? (very intuitive exlanation can be found in the accepted answer, any
fold
must be able to reconstruct the value it is applied to (list, tree, etc.))