~/talk

Hands on With Recursion Schemes - Part 2 of 2

Talkat LambdaConf 2017 · 2017-05-25..05-27· [typescript]
slides:none on file

Live coding shows Scala + Matryoshka recursion schemes producing working results: an eval algebra yields Either division‑by‑zero or Int and evaluates to 7 then to a division‑by‑zero error; cataM and Traverse implement effectful folds; a collect cata returns a List of NumLit nodes; an ana-based gen tries to build an expression of a given complexity (partial demo); para is used to return the original sub‑AST on division errors; Cofree is shown for Cofree annotations and Scala Matryoshka with cataM and ana and para to get original AST.

AI-written summary · about

  1. 0:00Recursion schemes intro
  2. 0:34Implementing eval with Katam
  3. 5:28Fixing Scala inference
  4. 6:36Traverse for expression types
  5. 10:20Evaluating expressions with Katam
  6. 11:09Collect nodes of type
  7. 16:11Implementing unfold with Jen
  8. 26:29Recursion vs manual traversal
  9. 28:41Understanding Fix and unfix
  10. 33:18Implementing cata from scratch
  11. 34:22Moving beyond cata to para
  12. 38:58CoFree for annotations
  13. 41:05Extending language with let
  14. 49:03Scope challenges in recursion
  15. 51:21Summary and Q&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.