A curated collection of resources for learning and applying recursion schemes in functional programming.
Awesome Recursion Schemes is a curated list of resources for learning about recursion schemes—composable combinators that automate recursion over data structures. It collects tutorials, papers, presentations, and implementations to help functional programmers master these abstractions. The project solves the problem of scattered information by providing a single comprehensive reference.
Functional programmers, particularly those using Haskell or Scala, who want to understand and apply recursion schemes in their work. Also valuable for computer science students and researchers studying recursion patterns.
It offers the most complete collection of recursion scheme materials available, saving developers time searching across multiple sources. The curation includes both theoretical foundations and practical applications from recognized experts in the field.
Resources for learning and using recursion schemes.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Gathers over 20 resources including introductions, articles, papers, and implementations, saving developers from scattered searches across the web.
Lists libraries for Haskell, Scala, JavaScript, and more, such as recursion-schemes and Matryoshka, aiding developers in different functional ecosystems.
Features articles like Bartosz Milewski's 'Stalking a Hylomorphism in the Wild' that apply schemes to real-world challenges like Advent of Code.
Links to seminal papers such as 'Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire,' providing academic rigor and depth.
Curates materials from prominent figures like Edward Kmett and Jared Tobin, ensuring high-quality and reliable content from trusted sources.
The project is merely a list of external links without active maintenance or updates, risking broken URLs and outdated information over time.
Lacks custom tutorials or explanations, forcing users to rely solely on third-party resources which may vary in quality and accessibility.
Assumes prior knowledge of functional programming and category theory, making resources like 'Understanding Algebras' daunting for beginners without a strong background.
Different implementations like Haskell's recursion-schemes and Scala's Matryoshka have varying APIs and documentation, leading to potential confusion when switching languages.