Mathematica is now in version 4.1, and this book was written in the time of Version 2.2, but it still could be read profitably if cognizance is made of the significant additions made to Mathematica since 2.2. The "Lispy" nature of Mathematica is still the same, and it still ranks as one of the easiest and most powerful of languages to program in. The authors have done a good job of introducing the reader to the subtleties of Mathematica, and they are honest in their explanations, pointing out the areas where using Mathematica might be problematic. A person getting started in Mathematica will no doubt want to read something that is more up-to-date, but this book is designed for such a reader and it has a lot of interesting ideas of how to apply the language.
One of the better features of the book includes the discussion on functions. The functional programming paradigm is one that I favor the most, and which is most transparently used in Mathematica. The authors do a good job of explaining anonymous functions in Mathematica and how to create the famous "one-liners" that Mathematica is famous for.
Another topic that is treated very well by the authors is recursion. Mathematica is mostly easily programmed using recursion, and the authors show, starting with the Fibonacci numbers, how to "think recursively". Readers who know Lisp will of course find the discussion very easy to follow.
A third edition of this book is in order, again since Mathematica has changed considerably since this book was written. More discussion on performance issues in Mathematica would be welcome, and also more examples and applications, along with more discussion on how to link Mathematica to external programs.