By Alvin Alexander. Last updated: October 6, 2022
As of October 20, 2017, the contents of my book, Functional Programming, Simplified (formerly “Learning Functional Programming in Scala”) can now be summarized like this:
- the pros and cons of functional programming
- why FP function signatures are much more important than OOP method signatures
- how pure functions work with I/O (file, database, and network)
- visual lessons on 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
- a thorough look at case classes and related topics like pattern matching
- type signatures are covered many times, so you can get used to reading code like
StateT[IO,GameState,Int]
- the correct way to handle exceptions and null values
- more than a dozen lessons on
for
-comprehensions - the meaning of FP terms like lambda, functor, monad, “monadic,” and algebraic data types (ADTs)
- how to use the ScalaCheck “property testing” framework
- monads like State and IO
- monad transformers like StateT
- domain modeling with Scala and functional programming
- lenses
- an introduction to type classes, including an example with the Cats library
- concurrency lessons, including Akka actors and Scala futures
- visual lessons on collections’ methods like
fold
andreduce
With this release the book is now available as a PDF on Gumroad, and as a Kindle eBook on Amazon.