Freestyle, Free & Tagless: separation of concerns on steroids
summary
A multiplayer Prisoner’s Dilemma is implemented three ways — hotseat console, single‑player with a bot, and networked multiplayer over Akka — using Cats, the free monad and Freestyle then compared to tagless final; programs are free monad programs as values and get interpreters into IO. About 15 isolated concerns emerge, each unit‑tested; the code runs end‑to‑end, the Freestyle macros cut Scala boilerplate, and a GitHub repo contains six runnable variants and tests.
AI-written summary · about
chapters (10)
- 0:00Start
- 1:17Separation of Concerns
- 1:51Separate the Concerns
- 2:34Achieve Separation of Concerns
- 7:06Prisoner's Dilemma
- 9:24Hot Seat Game
- 10:35Summary
- 17:36Connecting the Dots
- 19:17Freestyle Library for Scala
- 24:04Opening Decision
related talks
41mThe Free Monad by Example
08mCreative Console: A Player-driven Game Based on A Modular Fast-Evolving-And-Verifying Framework
26mInfinite Possibilities
57mI Command You to be Free!
46mBoundaries
31mMONADS - CODING FUNCTIONALLY
52mGo Fully Functional and Take Your Legacy Code with You!
58mFrom Zero to Live with Functional JavaScript Applications (Part 2)
