~/talk

Recursion Schemes in Plain Language

Talkat LambdaConf 2025 · 2025-05-12..05-13· [rust]
name:Jim Duey
links:none on file
slides:none on file

Recursion schemes claim that walking a recursive structure is separable from the operation applied at each node, so separates traversal from node logic and lets one reuse the same walk (fold, unfold, refold, apomorphism, Elgot, etc.). Examples: fold implements sum and map variations, unfold builds lists from seeds, refold interleaves unfold and fold and is used to transform ASTs. The talk asserts recursion schemes handle 80% of hard recursive cases and reports using refold in a compiler to transform/generate code successfully.

AI-written summary · about

  1. 0:00Recursion schemes intro
  2. 1:06Personal journey
  3. 4:20Why recursion schemes
  4. 5:03Recursive data structures
  5. 7:13Practical recursive examples
  6. 8:22Introducing recurse
  7. 11:42Core concept
  8. 13:51Recurse vs recur
  9. 14:38How fold works
  10. 18:29Depth-first with fold
  11. 19:55Map with fold
  12. 21:23Unfold intro
  13. 23:57Unfolding a list
  14. 25:22Combine unfold and fold
  15. 27:10Refold in compilers
  16. 28:14Other recursion schemes
  17. 30:42Components breakdown
  18. 32:29Apomorphism
  19. 34:37Elgot recursion
  20. 35:20Terminology decoder
  21. 37:06Base functors
  22. 38:10Sorting with recursion
  23. 38:54Learning resources
  24. 40:20Hyomorphism perf
  25. 41:30When recursion schemes are most useful
  26. 42:13Pitfalls
  27. 43:43Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.