New York, NY: Springer (ISBN 0-387-94282-3/hbk). xxxviii, 1028 S. (2004).

This volume is the first one in a series of four books on the Mathematica programming language. It is best suited for those who already know the basics and want to learn the sophisticated tricks of the advanced programming and to use Mathematica up to its full capacity. The author’s philosophy is to use the high level Mathematica commands (such as Map, MapThread, Apply, NestList, FoldList) whenever possible, avoiding the do, while, for loops common to most languages. This leads to very short programs and even one single command, which in many cases occupies several lines of text, can carry out very involved tasks. In such cases, translation of the Mathematica programs into other languages such as C may be a very time consuming task.

The book addresses many features of human-computer interaction. Obviously the basic question is how to make the computer work harder for the benefit of the user. Here I found discussions of essential mathematical questions that I have not seen elsewhere, such as printing of tables of basic trigonometric identities (e.g. \(\cos(\pi/2 +x) = - \sin(x), \sin(\arccos z) =\sqrt{1-z^2}\)) graphing Riemann surfaces of multivalued functions and a careful analysis of branch cuts of functions, symbolic matrix algebra etc. Quite fantastic was also to see how one can use a reservoir of strings to construct crosswords, for instance one could use the names of built-in Mathematica commands.

This book is one of the most valuable sources for the advanced users of Mathematica. Since Mathematica is now used in all mathematical institutes, all the science/engineering/computer science/mathematics libraries should have this book and its companion volumes.

The book addresses many features of human-computer interaction. Obviously the basic question is how to make the computer work harder for the benefit of the user. Here I found discussions of essential mathematical questions that I have not seen elsewhere, such as printing of tables of basic trigonometric identities (e.g. \(\cos(\pi/2 +x) = - \sin(x), \sin(\arccos z) =\sqrt{1-z^2}\)) graphing Riemann surfaces of multivalued functions and a careful analysis of branch cuts of functions, symbolic matrix algebra etc. Quite fantastic was also to see how one can use a reservoir of strings to construct crosswords, for instance one could use the names of built-in Mathematica commands.

This book is one of the most valuable sources for the advanced users of Mathematica. Since Mathematica is now used in all mathematical institutes, all the science/engineering/computer science/mathematics libraries should have this book and its companion volumes.

Reviewer: Matti Vuorinen (Turku)

##### MSC:

68W30 | Symbolic computation and algebraic computation |

68-00 | General reference works (handbooks, dictionaries, bibliographies, etc.) pertaining to computer science |

68N30 | Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.) |