Watson undertakes two tasks in this thin work: to prove to "C, C++, Ada, COBOL, and FORTRAN programmers" that Scheme is useful, too [n.b. Java is missing from this list: dated-material alert], and to educate the reader in artificial intelligence tools and techniques. He fails both.
After a standard-fair introduction to Scheme (that, unfortunately, does not convince me so much of Scheme's _usefulness_ as its _commonness_: if Scheme can do some of the same things as other languages, why use Scheme and put up with the parentheses? The author does not answer this question well in Chapter 2) that ignores Scheme OO features, the reader, in Chapter 3, is then treated to a totally inappropriate and offensive sermon on "reuse".
As if the author hasn't enough to do already. As if the reader (being a C, C++, Ada, COBOL or FORTRAN programmer) hasn't heard this sermon too many times from too many stupid systems architects who don't even know how to make code "usable", much less "reusable". As if the author is able to show reusability at all in his monolithic example at goes on (and on (and on)) for 8 pages.
Then we get a "portable graphics library" in Chapter 4 that the author develops then throws away after showing a couple of neural networks. The "portable graphics library" is not used at all in the two main programs (Chess and Go) that the author develops in the final chapter. In this context, does "portable" mean "trivial" or "useless"?
Oh, yes, we were supposed to learn a bit about artificial intelligence, weren't we? While the author never establishes this work as one where we will, indeed, learn something (anything?) about artificial intelligence, the scant paragraph or three per chapter gives the reader a very clear message: "If you aren't familiar with [genetic algorithms|neural networks], look elsewhere because I'm too busy showing you my code to explain them any more than superficially."
Then the pièce de resistance: his games. What's so bad about them isn't so much that they, too, go on (and on (and on)) for too many pages to bother counting (they are on the floppies provided, are they not?); it's not so much that the code is written in a procedural-centric style reminiscent of code 20 (30? 40?) years old: no, its that the author outputs game play against these constructs on a character terminal output! I mean, they invented chess notation for a reason, didn't they? "Go-notation" is not to be invented because they have board diagrams that show several (up to 100) plays. Watson believes, I suppose, that we do not believe his programs work unless he shows them working move by move, covering more pages.
This book was thin, but reading it was harder than reading _Core_Java_Nth_Edition_ (a work at least 5 times larger), because when the author had nothing to write (which was most of the time), he put program listings or output on the page instead. Even there, he failed: the program listings where painful to look at, and the output hilariously inappropriate.
I am returning my copy for a refund. Don't buy yours.