Concurrent ML - The One That Got Away
summary
Concurrent ML claims that channels become composable events not channels, and demonstrates with concrete Scheme code: a streaming Fibonacci network built from channels plus components (delay, copy, add) that actually run; a choose/guard/nack algebra for selective communication; a swap channels primitive and a lock-server pattern using negative acknowledgements. Comparisons show core.async, Go, Erlang and F# either lack the composable rendezvous or force awkward workarounds; the Scheme implementations work as advertised while the actor-style mailbox attempts fail to compose.
AI-written summary · about
chapters (18)
- 0:00Start
- 2:18F# Tutorial, CUFP 2011
- 4:43Composition Matters!
- 4:57Concurrent ML
- 6:02Fibonacci Network
- 7:24Process Networks: Add
- 8:10Engine
- 8:52Delay
- 11:43Selective Communication
- 18:30Rendezvous Composition
- 20:29Roll yer own rendezvous
- 22:41Guard
- 23:31Losing Interest
- 25:05Erlang Processes
- 28:03Concurrency on the JVM
- 28:40Threads vs. Actors
- 29:35Buffering / Backpressure?
- 33:38Open Questions
related talks
39mConcurrent Languages are Functional
03h 29mConcurrency with Clojure
44mCAN WE FREE CONCURRENT PROGRAMMING FROM THE MONADIC STYLE
01h 04mcore.async: Concurrency without Callbacks
01h 35mThinking Outside the Synchronisation Quadrant
38mModeling concurrency in Ruby and beyond
30mCONQUERING CONCURRENCY WITH FUNCTIONAL PROGRAMMING
01h 16mConcurrency Approaches: Past, Present, and Future
