The book is not about LISP; it is about SCHEME. My main gripe is that the author has sacrificed explanations for brevity. As with so many texts, it is possible to decipher the exposition only if you already know the material. The author mixes the presentation of SCHEME code, mathematical commentary on SCHEME code, and SCHEME's input and output in a way that can be disentangled by beginners only if they try everything with a SCHEME interpreter. You are new to Scheme's continuations and "call/cc"? This book will hopelessly confuse you because it gives just a couple of examples of "call/cc" that contradict its description in the text, and the chosen order of examples is the least conducive to understanding. You want to know what "declarative programming" or "vector" is? There are no definitions of these terms in the book, although the author uses them significantly. (The author sometimes calls lists "vectors", although SCHEME supports a special "vector" type, and the author mentions the "vector?" predicate and the "list->vector" function without explanation.)
I gave two stars because a) the author does define clearly such important and nontrivial concepts as "boxed type" or "lexical scope". b) at least some explanations in this book are, nevertheless, clear.