Why Care About Functional Programming
summary
Claims that functional programming reduces what developers must keep in their heads, enforces referential transparency, and makes async, retries, timeouts and resource management declarative rather than imperative. Examples use Scala and Rust; concrete tools shown include the Z library (IO, flatMap, race, timeout, acquireRelease) and Tokio for Rust. A real bug example proves a test passes for months then fails because of hidden current-date side effects, and retry schedules are built and reused instead of handwritten loops.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:30Why FP matters today
- 3:19Pure functions and power
- 6:56Declarative vs imperative
- 9:27Composing functions
- 13:25Problem with imperative side effects
- 15:56Referential transparency
- 16:16Handling side effects functionally
- 20:18Introducing IO monad
- 23:48What is a monad
- 26:59Common monads
- 29:10Monads for async and errors
- 35:16Category theory and FP
- 36:41FP is not hard
- 38:06Practical steps to adopt FP
- 41:52Q&A
related talks
25mA Guide To Functional Programming
10mFunctional Programming for Everyone
01h 03mFunctional Programming in JavaScript
01h 00mFunctional architecture - The pits of success
27mPractical functional programming: pick two
45mFrom Zero to Live with Functional JavaScript Applications (Part 1)
11mIntroduction to functional programming
27mFunctional Reactive Programming: What Does It Solve? Does It Solve Things? Let's Fi...
