ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
The Little MLer
Matthias Felleisen&Daniel Friedman
0 262 56114 X
MIT Press
Peter Tillier
modelling languages
Appeared in:
This book aims to teach the basic ideas behind ML, which is a functional language available in a number of implementations; the main modern freeware versions are Standard ML of New Jersey (SML/NJ) and Objective CAML (OCAML). SML/NJ supports the 1996/7 standard for ML known as SML, while OCAML is a major dialect of the ML family.

For those programmers who are not aware of the functional paradigm, this type of program makes very little use of variables and instead uses functions and their arguments to determine the values to be returned and displayed. These languages are also strongly typed; functions accept parameters of specified types and return specified types.

The book discusses in detail a number of major topics, such as data types (the datatype keyword) and unsurprisingly, functions (the fun keyword) using questions and answers. This style is very unusual in a technical book: at first this approach didn't quite work for me - I normally prefer computing books to be more descriptive. However, the approach is aimed at those who know little or nothing about ML, so this book could well provide the basics that are needed by someone who is not familiar with programming concepts, or hidebound by previous experience using 3GLs.

As I initially found the book rather hard to read I put it aside for a couple of weeks and then started reading it again from the middle and found it easier to follow. Some of the examples shown there are similar to those used in a course, 'Mathematics and Computing' about the mathematical basis of logic and logic programming, that I studied some years ago. The parallel made the book easier to follow from that point; I think that I fell into the 3GL trap when I read it for the first time.

The examples quoted in the text could all be input to one of the ML interpreters mentioned at the beginning of the review to reassure the reader that they work. Hints are provided to accommodate the differing SML/NJ and OCAML syntax.

I think that this book would be useful for anyone wanting to learn about the basic features ML, or another functional language that supports a similar syntax. I also think that C, C or Java programmers who want to implement programs using a functional style would find this of interest.

My reservations are; a) the style may not suit everyone and b) some of the ACCU membership will probably not be interested in finding out about ML or functional programming. On the other hand if you are interested in widening your knowledge as a programmer, then I believe the lessons learned here will improve the programs that you write, because they give you an additional way of looking at programming problems and solutions.

Recommended with reservations.