2 of 3 people found the following review helpful
Wrong choices, sketchy definitions, poor read,
This review is from: Functional Programming for Java Developers: Tools for Better Concurrency, Abstraction, and Agility (Paperback)
A classical objection Java programmers (and programmers of other languages) have against functional programming is the abundance of recursion. In Java it makes perfect sense to try and avoid it as much as possible. The title of the book suggests that it will teach you to bridge the conceptual gap and help you translate common recursion patterns to structures better suited for Java, i.e. loops / iterators / etc. This is just an example of a wrong choice (he actually uses recursion in almost all his Java code, even though he comments it doesn't optimise).
Definitions of central concepts (lists, category theory, monads, concurrency) are sketchy at best. Some are downright incorrect (lazy evaluation; his definition is that of non-strictness). Oftentimes I couldn't help but be under the impression that the author is convinced it's more important to sound intelligent than it is to be to-the-point. This would normally only be considered a stylistic problem, but in this case it leads to confusion, ambiguity and incorrectness.
Java programmers that want to know what all the fuss is about would do better getting a simple introduction text (e.g. Graham Hutton's Programming in Haskell), working through that in a few days (at most) and applying the concepts in a world they know all too well.