Paperback: 180 pages
Publisher: O'Reilly Media; 1 edition (July 20, 2014)
Product Dimensions: 7 x 0.4 x 9 inches
Shipping Weight: 12 ounces (View shipping rates and policies)
Average Customer Review: 3.6 out of 5 stars See all reviews (10 customer reviews)
Best Sellers Rank: #415,848 in Books (See Top 100 in Books) #42 in Books > Computers & Technology > Programming > Functional #155 in Books > Textbooks > Computer Science > Object-Oriented Software Design #178 in Books > Computers & Technology > Programming > Languages & Tools > C#
I think this may be my first review, but I had to respond after seeing two very negative reviews about this book. First, I can understand that this book can be confusing, as it dives right in to functional programming (FP) without a primer or appendix to help beginners. (I strongly recommend [defmacro - Functional Programming For The Rest of Us](http://www.defmacro.org/ramblings/fp.html) for that purpose.) However, as an intermediate developer with an (apparently) above-average exposure to FP, I found this book to be extremely illuminating and incredibly useful for me to advance to the next level of FP understanding.Sidenote: One reviewer asserts that the author is confused and perhaps lacks knowledge. I don't know Neal Ford, but I am very familiar with the output of the company at which he works - ThoughtWorks. I can say for certain that anyone employed by them for years is certainly knowledgeable about software engineering, particularly when it comes to real-world usage.Why did I find the book so valuable?* As you can see from the [hosted code](https://github.com/oreillymedia/functional_thinking), Ford accompanies all of his code examples with unit tests, which I find essential for understanding and trust.* Most examples are done in Clojure (a LISP variant for the JVM), Groovy (a dynamic JVM language), **and** Java 8 (sometimes using the Functional Java library), as well as a number in Scala. I find that comparisons between languages improve my learning and retention, in addition to giving extra perspective.* Ford guides the reader through the mix of terminology for the essential FP functions and how they differ by language: map (when it is called 'collect' and why; a.k.