Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Awesome
  3. Recursion Schemes

Recursion Schemes

A curated collection of resources for learning and applying recursion schemes in functional programming.

GitHubGitHub
1.3k stars57 forks0 contributors

What is Recursion Schemes?

Awesome Recursion Schemes is a curated list of resources dedicated to the topic of recursion schemes in functional programming. It compiles tutorials, academic papers, presentations, and library implementations to help developers learn how to use these patterns for automating recursion over data structures. The project solves the problem of scattered information by providing a single, organized reference point.

Target Audience

Functional programmers, particularly those using Haskell or Scala, who want to deepen their understanding of advanced recursion patterns. It's also valuable for academics and developers exploring category theory applications in software design.

Value Proposition

Developers choose this resource because it aggregates high-quality, community-vetted materials from experts like Edward Kmett and Bartosz Milewski into one accessible location. Its unique value is in bridging theoretical concepts with practical implementations across multiple programming languages.

Overview

Resources for learning and using recursion schemes.

Use Cases

Best For

  • Learning the theory behind catamorphisms, anamorphisms, and other recursion schemes
  • Finding practical examples of applying hylomorphisms to solve coding challenges
  • Comparing recursion scheme implementations across different functional languages
  • Accessing academic papers and presentations on advanced recursion patterns
  • Discovering libraries like `recursion-schemes` for Haskell or `Matryoshka` for Scala
  • Understanding how to replace manual recursion with composable combinators

Not Ideal For

  • Teams working in imperative or object-oriented languages like Python or Java who need quick recursion solutions without adopting functional paradigms
  • Developers seeking drop-in code snippets or libraries for common tasks without understanding underlying category theory concepts
  • Projects with tight deadlines or limited resources that cannot afford the steep learning curve associated with advanced functional programming topics

Pros & Cons

Pros

Comprehensive Resource Curation

Aggregates diverse materials from introductions to academic papers, presentations, and cheat sheets, saving time for researchers and learners by centralizing scattered information.

Multi-Language Implementation Coverage

Includes libraries and examples for Haskell, Scala, JavaScript, and other languages, allowing developers to explore recursion schemes in their preferred functional ecosystem.

Practical Application Examples

Features articles like 'Stalking a Hylomorphism in the Wild' that demonstrate solving concrete coding challenges, bridging theory with real-world use cases.

Expert Community Contributions

Curates content from noted authorities like Edward Kmett and Bartosz Milewski, ensuring high-quality, vetted resources that reflect best practices in the field.

Cons

Overwhelming for Beginners

The sheer volume and advanced nature of resources, such as academic papers and theoretical presentations, can be intimidating without prior functional programming experience.

Passive Learning Format

As a static list, it lacks interactive tutorials or hands-on exercises, requiring users to seek external platforms for practical coding practice.

Language and Paradigm Bias

Heavily emphasizes Haskell and Scala ecosystems, with limited support for newer or non-functional languages, potentially excluding developers from other backgrounds.

Frequently Asked Questions

Quick Stats

Stars1,300
Forks57
Contributors0
Open Issues1
Last commit2 years ago
CreatedSince 2016

Tags

#haskell#functional-programming#category-theory#catamorphisms#recursion-schemes#f-algebras#learning-resources#scala#awesome

Included in

Awesome452.0k
Auto-fetched 1 day ago

Related Projects

AlgorithmsAlgorithms

A curated list of awesome places to learn and/or practice algorithms.

Stars25,234
Forks2,964
Last commit1 month ago
MathMath

A curated list of awesome mathematics resources

Stars15,562
Forks1,533
Last commit27 days ago
Awesome artificial intelligenceAwesome artificial intelligence

A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers.

Stars14,067
Forks2,315
Last commit28 days ago
Competitive ProgrammingCompetitive Programming

:gem: A curated list of awesome Competitive Programming, Algorithm and Data Structure resources

Stars13,987
Forks2,612
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub