Functional design patterns

Konstantin Solomatov picture Konstantin Solomatov · Jul 5, 2012 · Viewed 10.1k times · Source

There are a lot of functional idioms: monads, applicatives, arrows, etc. They are documented in different articles but unfortunately I don't know any book or article where they're summarized in one place (there is Typeclassopedia but it has a lot of areas that aren't covered well). Can anyone recommend an article/book which covers them well in one place and which can be accessible to a programmer with intermediate skills in FP?

Answer

Edmondo1984 picture Edmondo1984 · Jul 9, 2012

My suggestion is, if you want to learn Scala, to read the book from Paul Chiusano and Runar Bjarnason:

http://manning.com/bjarnason/

Part II: Functional design and combinator libraries

  1. Making little languages
  2. JSON serialization
  3. Specification-based testing
  4. Parsers
  5. Purely functional parallelism
  6. Purely functional state

Part III: Functional design patterns

  1. The case for abstraction
  2. Monoids
  3. Functors
  4. Monads
  5. Applicative functors
  6. Traversable and foldable data structures
  7. Comonads

Part IV: Breaking the rules: effects and I/O

  1. Effects vs. side-effects
  2. Stream processing and incremental I/O
  3. Enforcing effect-scoping with the type system