“Transducers: from Clojure to C++"
summary
Shows a working C++ implementation (Atria) of transducers that are composable values and apply to ranges, boost signals, CSP channels or sockets; introduces a state wrapper technique to implement stateful transducers without hidden mutation; exposes APIs: reduce/transduce/sequence/into and a type-erased transducer wrapper (noted as type-erasure expensive). Claims performance on par with hand-written loops and often faster than boost::range adaptors; lazy sequence adapter uses a queue and some adapters add overhead.
AI-written summary · about
chapters (8)
- 0:00Introduction and motivation
- 3:10What is a transducer
- 13:23How transducers work
- 27:15Library design and utilities
- 33:42State handling in transducers
- 47:19Early termination and nested reductions
- 51:13Performance and move semantics
- 57:52Conclusion and future
related talks
45mTransducers
38mLost in Transduction
43mReducers
01h 09mThe Definitive Guide to Functional Programming in Cpp
01h 16mFunctional Composition Beyond Monads
01h 03mUnleash Your Data with Clojure: Using Transducers and Sequences
58mMonoids, Monads, and Applicative Functors: Repeated Software Patterns
57mBuilding an Intuition for Composition
