TL;DR
- モナドやファンクタなどの関数型プログラミングのパターンを、プログラム設計を組み立てる方法として紹介し、Cats での実装を解説する本である。
- 元は旧版『Scala with Cats』を Scala 3 向けに直す計画だったが、足りない話題を加えた結果、ほぼ新しい本になった。
対象読者
Scala の仕組みをひととおり知っていて、もっと効果的に使いたい人に向けた本である。関数型プログラミングと一緒に Scala を学ぶつもりなら、Scala が初めての人も対象に入る。第 1 章では、関数型プログラマのように考える方法、つまり思考の戦略を教える本だと位置づけている。Scala 3.3.4 と Cats 2.10.0 を前提に書かれている。
目次
- Functional Programming Strategies
- Algebraic Data Types
- Objects as Codata
- Contextual Abstraction
- Reified Interpreters
- Using Cats
- Monoids and Semigroups
- Functors
- Monads
- Monad Transformers
- Semigroupal and Applicative
- Foldable and Traverse
- Indexed Types
- Tagless Final Interpreters
- Optimizing Interpreters and Compilers
- Creating Usable Code
- Case Study: Testing Asynchronous Code
- Case Study: Map-Reduce
- Case Study: Data Validation
- Case Study: CRDTs