An absolutely wonderful book for someone that has tried and failed to understand functional programming.
Grokking Functional Programming is a practical book written especially for object-oriented programmers. It will help you map familiar ideas like objects and composition to FP concepts such as programming with immutable data and higher-order functions. You will learn how to write concurrent programs, how to handle errors and how to design your solutions with modularity and readability in mind. And you'll be pleased to know that we skip the academic baggage of lambda calculus, category theory, and the mathematical foundations of FP in favor of applying functional programming to everyday programming tasks. At the end of the book, you'll be ready to pick a functional language and start writing useful and maintainable software.
about the technology
Functional programming is more than just writing the same old code in Scala, Clojure, or Haskell. To grok FP—to really get it—you need to rewire your brain to see the world differently. We're here to help you flip the switch. Grokking Functional Programming
teaches you first to break down problems in a new way so you can approach them from a FP mindset. Following carefully-selected examples with thorough, carefully-paced explanations, you'll immerse yourself in FP concept by concept. Along the way, exercises, checks for understanding, and even the occasional puzzler give you opportunities to think and practice what you're learning.
- Designing with functions and types instead of objects
- Multiple learning approaches to help you grok each new concept
- A practical programming-first teaching style
- Programming with pure functions & immutable values
- Writing concurrent programs with a functional style
- Testing functional programs
about the reader
The book assumes that the reader has at least one year of experience developing software using a mainstream object-oriented programming language like Java. While examples use Scala, this is not a Scala book. The concepts will apply to any FP language, and no prior knowledge of Scala or FP is required.
about the author
Michał Płachta started using Scala commercially in 2014 and has been an active contributor to the Scala and JVM communities since. He regularly speaks at conferences, runs workshops, and organizes meetups to help others become better at functional programming. You can find his blog at michalplachta.com.