Functional Programming, Simplified: Scala edition

Functional Programming, Simplified: Scala edition
Functional Programming, Simplified: Scala edition by Alvin Alexander
English | 2017 | 890 Pages | EPUB, AZW3, PDF (conv) | 10 MB

"Functional Programming, Simplified (Scala edition)," makes the process of learning functional programming (FP) in Scala as simple as possible by breaking down complex topics into small, bite-size chunks that are easy to understand. The lessons are presented in a logical sequence — the order in which the author learned them — culminating in advanced topics like functional domain modeling, and how to write and use monads.
Some of the book’s lessons include:

  • A simple set of rules for functional programming in Scala
  • How and why to write pure functions and use immutable variables
  • Why function signatures in FP are *much* more important than method signatures in OOP
  • How pure functions work with I/O (file, database, and network)
  • How to read anonymous functions
  • Lessons on recursion, with many images to help explain how it works
  • How the concepts of JVM stacks and stack frames work
  • Partially-applied functions and currying
  • How using Option naturally leads to flatMap, and how flatMap naturally leads to for-comprehensions
  • How and why to use case classes and pattern matching
  • How to use monads like State and IO
  • How to use monad transformers like StateT
  • How (and why) to write your own monads
  • Domain modeling in functional programming
  • How to use “lenses” to update immutable data models
  • Concurrency lessons cover Akka actors and Scala futures
  • Visual lessons on collections’ methods like fold and reduce
  • How to use the ScalaCheck property-testing framework
  • How to write and use “type classes”
  • Algebraic Data Types (ADTs) are explained