I think the main prerequisites are:
There are no real programming prerequisites, but the book is written in a highly idiomatic style that is very definitely not for everyone.
Will this book enlighten me in the right way?
If you can learn from dialogs, and if you can handle the tone, then the book will help you make a good start. But tf you want to be "enlightened in the right way" about functional programming there are very good alternatives worth considering:
- How to Design Programs is functional programming for the complete beginner using Scheme. A very good book, but perhaps too low-level for you. Free online and comes with superb free tools.
Given that you are already familiar with Java and therefore with static type-checking, you might consider Haskell as an alternatives:
Graham Hutton's Programming in Haskell is not available free, but it is an introductory book and a very fine one. You get the point of view of one of the world's best (and most well organized and clear-thinking) functional programmers.
If you want to go on your own, you could try teaching yourself Haskell starting with Why Functional Programming Matters by John Hughes and continuing with Real World Haskell, which is also free online.