Functional Programming, Simplified (current contents)

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 and reduce

With this release the book is now available as a PDF on Gumroad, and as a Kindle eBook on Amazon.