~/talk

The Free Monad by Example

TalkinFrenchat Scala.IO 2014 · 2014-10-23..10-24· [frontend-architecture]
links:none on file
slides:none on file

A working Free-monad DSL for stream processing that represents programs as step/emit/await/stop instructions, with combinators such as pipe, compile and repeat plus a collector to turn a Process into a List. It demonstrates fusion of map/filter and explains that the separation of representation and interpretation makes testing possible by inspecting the Free structure, but warns of JVM overhead (many short-lived objects) and that naive flatMap can be quadratic without optimizations; real workloads still run and optimized Free variants exist.

AI-written summary · about

  1. 0:00Introduction
  2. 1:18Speaker and topic
  3. 3:31What is Free
  4. 4:35Representation vs interpretation
  5. 6:01Free structure
  6. 7:26Trampolines example
  7. 13:24Functors and monads in Free
  8. 16:13Stream processing with Free
  9. 23:46Adding logic to representation
  10. 25:09P combinator and interpretation
  11. 27:58Pipe and Filter example
  12. 31:59DSL and Free conclusion
  13. 34:30Performance and optimization
  14. 38:55When to use Free
  15. 40: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.