Actions as data, continued
summary
Kotlin coroutines convert user-friendly imperative DSLs (coin flips, loops, draw/discard) into an inspectable action ADT by marking primitives as suspend and extracting the runtime Continuation via suspendCoroutine. The implementation captures a small mutable state plus the continuation, produces nested action records for analysis/optimization, and resumes execution with startCoroutine. The prototype handles recursion-to-loop examples and conditional branching, it works, and the main cost is boilerplate that can be automated.
AI-written summary · about
chapters (11)
- 0:00Functional programming joy
- 1:05Trading card games in code
- 3:57Card attacks with conditionals
- 8:55Optimizing card game programs
- 14:36Recursive loops in DSLs
- 15:40Style modeling with interfaces
- 19:56DSL capabilities for analysis
- 21:48Kotlin coroutines for continuations
- 25:41Continuations for DSL transformations
- 28:12Final versus initial DSL styles
- 35:37Summary
related talks
38mCoroutines Internals: How The Sausage is Made
11mKotlin Coroutines: Design and Implementation
45mDeep Dive into Coroutines on JVM
42mKotlin Coroutines: Beyond async/await
47mKotlin Coroutines
30mBetter asynchronous programming with Kotlin Coroutines
43mCoroutines for Java Developers
39mCoroutine Suspension Mechanics
