/awesome-recursion-schemes

Resources for learning and using recursion schemes.

Awesome Recursion Schemes Awesome

A curation of useful resources for learning about and using recursion schemes.

Recursion schemes are simple, composable combinators, that automate the process of traversing and recursing through nested data structures.

Contents

Introductions

  • Practical Recursion Schemes - Introduction to pattern functors, fix points, anamorphisms, catamorphisms, paramorphisms and hylomorphisms, requiring very little prior knowledge.
  • An Introduction to Recursion Schemes - Three-part series in which you discover recursion schemes from scratch and implement a small subset of Edward Kmett's library.
  • Understanding Algebras - Bartosz Milewski explains F-algebras and shows how to use them in the context of catamorphisms.

Articles

Papers

Presentations

Podcasts

  • Magic Read Along - Casual discussions about category theory that often bring up recursion schemes, including episode 33 which talks about Histomorphisms and Futumorphisms.

Implementations

  • recursion-schemes for Haskell - The canonical implementation by Edward Kmett.
  • Matryoshka for Scala - Generalized folds, unfolds, and traversals for fixed point data structures.
  • purescript-matryoshka for PureScript - Work-in-process port of matryoshka.

License

This content is licensed under CC0.