F# brings functional programming to the .NET platform. It is an outgrowth of the ML family of languages, especially OCaml. With parallelism prevalent, functional programming increases in importance. F# is geared toward mathematically oriented programming and scientific and engineering tasks, and this book excellently and concisely presents both F# and scientific applications. It contains everything important, but gets to the point quickly to accommodate busy scientists and application programmers. Chapters 1 to 6 cover F# programming, concluding with simple examples. Chapters 7 to 11 cover advanced topics, while the final chapter concludes with working examples.

The first section presents F# using numerous examples that may be entered interactively, so that one learns the basics concretely and rapidly by using either the console or Visual Studio. The chapter on data structures includes a section on algorithmic complexity. In addition to the built-in data structures, it contains a nice section on trees illustrated with a tree-based force computation that is compared with the array approach. A chapter on numerical analysis includes algebra and interpolation. The simple examples include dynamic programming, the discrete wavelet transform, and transcribing DNA.

Each advanced chapter is a delight. â€œVisualization” shows cellular automata in Windows Forms and rendering and function plotting using the DirectX graphics library. The next chapter introduces techniques for program optimization. Chapter 9 presents libraries, including threads, vectors and matrices, and the Fourier transform. The next chapter treats databases and Web services. A chapter on interoperability shows how F# can interact with Excel, MATLAB, and Mathematica. The concluding complete examples include the fast Fourier transform, the semi-circle law, finding the *n*th-nearest neighbors, a logistic map, and real-time particle dynamics.

Harrop provides a link for the code samples that only allows one to submit an email request, with no indication as to when the code will become available. Because of the increasing importance of parallelism, it would have been nice to use the multicore ParallelFX library with F#. But there is little to complain about. The hardbound book is a really solid treatment, ideally suited for its intended audience.