~/talk

When your DSL Needs to Support User-Defined Functions

links:none on file
slides:none on file

Presents a concrete technique that converts user-written lambdas on placeholder expressions into a pure AST of abstract arrows using the Libretto library, yielding a point-free representation with no Scala functions inside. Demonstrates on a background‑check workflow that supports branching, parallelism, recursion and sharing, and shows how the AST enables durable execution by persisting inputs, continuations and activity promises. Uses extension methods, context functions and path‑dependent types so Scala typechecking handles most errors and the generated arrow compositions avoid capture and unnecessary duplication.

AI-written summary · about

  1. 0:00Embedded DSLs and user-defined functions
  2. 1:16Embedded DSLs vs custom syntax
  3. 2:41Programs as data and AST control
  4. 4:52DSL variables challenges
  5. 6:41Deification to eliminate lambdas
  6. 9:52Point-free representation for safety
  7. 11:18User-friendly DSL with AST output
  8. 12:45Example workflow DSL for background checks
  9. 18:05DSL code sketching with lambdas
  10. 20:23User code to pure data structures
  11. 21:52How deification works
  12. 24:06Eliminating variables in AST
  13. 27:21Pattern matching in DSL
  14. 30:10Loops and recursion without variables
  15. 31:41AST to workflow execution
  16. 36:27Execution state as data
  17. 38:17Scala features enabling approach
  18. 40:32Key takeaways and future
  19. 42:01Q&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.