Although I do not admit(1) to understanding all about functional programming..I consider myself fortunate to be introduced to Prolog (and indirectly to Lisp and Scheme) when I was in university... together with a great data structures course (in Modula-2, of all things) I understood most of the topics that are covered in the upcoming book you mention...