Is 'Making Java Groovy' a book for even those who have had no previous exposure to a functional programming language, who do not know how closures work, who don't know much about lambdas, and who don't even know the features of functional programming languages too well to realize their elegance.
What are the prerequisites for a reader to be able to follow the content in the book without many doubts?
I struggled with exactly that issue while writing the book. My book is not a definitive Groovy reference, like _Groovy in Action_. I assume that readers are reasonably comfortable with Java, but that's all. All Groovy techniques are explained in the book.
I originally planned to have a simple "Groovy by Feature" chapter that went through each topic one by one. While writing it, I stumbled on a blog post by someone who said they hated that approach, and preferred to learn through examples instead.
Therefore I decided to do both. Appendix B in the book is called "Groovy by Feature" and introduces Groovy from the ground up. Chapter 2 is called "Groovy by Example" and covers similar ground using a series of small but non-trivial applications. Hopefully the combination will be enough for any Groovy newcomer (who does have some Java experience) to get what he or she needs.