All Categories
“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 explainedAll told, the book contains 120 small chapters. Source code examples from the book are available as a series of Github repositories that you can download and work with.