~/talk

Functional interpreters and you

slides:none on file

Compares two concrete interpreter encodings: a reified AST with pattern-match evaluators and AST-based free monads (implemented with Cats’ Free and foldMap to Future/Option/ID) versus a Church-encoded approach tagless final that returns F[A] so interpreters pick F (Future, ID, Either) and sequencing comes from a Monad instance. Builds a calculator DSL, demonstrates type-safe typed-DSL vs untyped, shows composition via EitherK and mentions Freestyle for boilerplate reduction, reports tagless-final is simpler, lighter and used in multiple projects with working GitHub examples.

AI-written summary · about

  1. 0:00Start
  2. 0:34Interpreter Pattern
  3. 2:13The Interpreter Pattern
  4. 4:01Write Multiple Interpreters To Interpret a Program
  5. 5:05Compilers
  6. 5:26Use Cases
  7. 5:53Approaches to Interpreters
  8. 6:13Church Encoding
  9. 10:58An Asynchronous Interpreter
  10. 11:33Analysis and Recompilation
  11. 12:42Boolean Operators and Comparisons
  12. 17:19Implicit Ordering
  13. 18:26Flat Map Expression
  14. 29:49Helper Methods
  15. 33:27Alternative Encoding
  16. 37:59This Is a Bit of a Weird One but in Principle You Can Implement Anything You Want in There any Type of Structure You Want and Then in Your and Then the Other Thing Is that a Lot of these Guys I Haven't Introduced any any Sequencing in Here I'Ve Got a Wrote Square Bracket There That's a Bit Weird but I Haven't I Haven't Said How these Things Could Be Sequence Together and the Idea Is that When You Build One these Interpreters You Fill in a Data Type That Has some Kind of Sequencing in It so We Can Use a Monad
  17. 38:19I Haven't I Haven't Said How these Things Could Be Sequence Together and the Idea Is that When You Build One these Interpreters You Fill in a Data Type That Has some Kind of Sequencing in It so We Can Use a Monad so We Can Build a Program Which Says Okay I Can Run this Sequence of Steps for any Dsl for of an F Where F Is a Monad F Has an Instance of Monads so You Can Import that if You Import Monad and You Put this Cat Slot Syntax Dot Flatmap Then that Gives You this Flat Map Method on on F Whatever F Is So if I Want To Run It with Future I Pass in My a Secrets Interpreter
~/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.