Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Recursion Schemes
  3. recursion-scheme-talk

recursion-scheme-talk

AGPL-3.0

A collection of talks explaining recursion schemes for functional programming in Haskell and Scala.

GitHubGitHub
221 stars12 forks0 contributors

What is recursion-scheme-talk?

Recursion Scheme Talks is a collection of presentations that teach recursion schemes, a functional programming technique for structuring recursive programs using fixed-point types and reusable patterns. It demonstrates how to eliminate explicit recursion in code and apply these patterns to real problems like compiler design. The talks cover implementations in both Haskell and Scala.

Target Audience

Functional programmers working with Haskell or Scala who want to understand advanced recursion techniques, particularly those building compilers, interpreters, or complex recursive data structures.

Value Proposition

Provides practical, example-driven explanations of recursion schemes that bridge theory and application, with multiple talk versions showing evolving approaches to teaching these concepts effectively.

Overview

A talk on using recursion schemes in FP.

Use Cases

Best For

  • Learning recursion schemes from practical examples
  • Understanding fixed-point types in functional programming
  • Building efficient multi-pass compilers in Scala
  • Eliminating explicit recursion in Haskell code
  • Studying Matryoshka patterns for recursive data structures
  • Exploring type-level programming techniques

Not Ideal For

  • Teams seeking production-ready recursion scheme libraries or frameworks
  • Developers needing up-to-date tutorials for modern Haskell or Scala versions (talks are from 2016)
  • Learners who prefer interactive coding exercises over presentation slides

Pros & Cons

Pros

Practical Example-Driven Teaching

The talks demonstrate real-world applications like building efficient nanopass compilers and fixing types, making abstract recursion schemes tangible for compiler design and FP projects, as highlighted in the README's focus on practical examples.

Dual Language Coverage

Covers both Haskell and Scala implementations, with separate talks for each language community (e.g., Boulder Haskell Meetup and Scala Up North), providing cross-functional insights for FP developers.

Evolving Presentation Versions

The repository tracks changes as talks develop, with tags for different presentation versions, allowing learners to see how explanations and examples improve over time, as noted in the README.

Supplementary Cheat Sheets

Includes additional resources like recursion scheme and algebra cheat sheets, offering quick references to reinforce concepts from the talks, as listed in the README.

Cons

Outdated Content

All talks are from 2016, which may not reflect current best practices, library updates (e.g., Cats or Matryoshka versions), or language features in Haskell and Scala, limiting relevance for modern projects.

Lack of Interactive Learning

As presentation materials, they lack hands-on exercises, runnable code samples, or structured quizzes, making it harder for learners to apply concepts immediately without external practice.

Narrow Focus Scope

Solely centered on recursion schemes without broader FP context, which might overwhelm beginners or those seeking general functional programming tutorials, as evidenced by the specialized talk topics.

Frequently Asked Questions

Quick Stats

Stars221
Forks12
Contributors0
Open Issues1
Last commit2 years ago
CreatedSince 2016

Tags

#talks#haskell#functional-programming#educational#recursion-schemes#compiler-design#cats-library#type-theory#scala

Included in

Recursion Schemes1.3k
Auto-fetched 3 hours ago

Related Projects

Bracer: Transforming Real-World Languages with Coproducts and Recursion SchemesBracer: Transforming Real-World Languages with Coproducts and Recursion Schemes

High-level talk about structuring programs with coproducts and recursion schemes by Patrick Thomson

Stars0
Forks0
Last commit
Recursion SchemesRecursion Schemes

Presented by Tim Williams at the London Haskell meetup

Stars0
Forks0
Last commit
Slidedecks by Tim Philip WilliamsSlidedecks by Tim Philip Williams

"Recursion Schemes by Example" and "Exotic Tools for Exotic Trades" provide concise definitions as well as practical examples of many recursion schemes

Stars0
Forks0
Last commit
A Gentle Introduction to Recursion SchemesA Gentle Introduction to Recursion Schemes

Presented by Jean Remi Desjardins at Lambdaconf 2016

Stars0
Forks0
Last commit
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