Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
The little MLer
Felleisen M., Friedman D. (ed), MIT Press, Cambridge, MA, 1997. Type: Book (9780262561143)
Date Reviewed: Sep 1 1998

Some books are obviously good (far too few), some are obviously bad (far too many), and some fall in the middle--good enough, perhaps, but with a few flaws. Some books, however, are much harder to classify, and The little MLer is one of those. It is a programmed learning text, more or less. In a traditional programmed learning text, each page is composed of two columns divided into horizontally aligned boxes. The box in the left-hand column is a statement or question for readers, and the box in the right-hand column contains the answer or further explanation. Dedicated readers will read the left-hand box, work out the exercise presented, and then verify the answer in the right-hand box. This is an extremely effective technique; I used a similar text in high school to learn basic electronics, and I still retain much of the material, despite not having used it since. Felleisen and Friedman have adapted the technique a bit in this book. The right-hand box contains answers, but sometimes also odd comments. For instance, one question, “Can we write the unabridged version of has_steak?” is answered with “Yes, but it would make our fingers too tired.”

The book is a delight to read. It is humorous, challenging, and instructive. After having read it, however, I was still left wondering just what it is about. It is not a text or reference for ML, although dedicated readers may learn quite a bit about ML by reading it. It is at least somewhat about the concept of typing in functional languages--certainly types are an important part of the text--but it is not really about that either. It is, in part, about thinking about programs, though there are few code fragments longer than 20 or so lines. It is about functional styles (functions that return functions show up a few times), but only a bit. The book is about all of these things, but at the same time, not about any one of them. Sometimes a list of chapter titles can help determine what a book is about, but what is one to make of chapters entitled “Oh My, It’s Full of Stars” and “Oh No!”

In several places, concepts are sprung on the reader more or less out of the blue. In one of these instances, it took me several tries to figure out what was happening. But even the flaws help in odd ways. I do not know how I would use this book as a classroom text, but I can see using it as a supplement or encouraging students to read it on their own.

Over the last few years, I have been collecting a list of books that every good computer science student should read and keep. This book is now on that list. I would most especially recommend it for students in computer science programs that teach only the most popular languages (C, C++, and Java), as a way to help them break out of that rather stifling mold. I recommend it highly to those software practitioners who are serious about good program design, to those who would like a relatively painless introduction to functional programming, and to anyone with a bit of healthy curiosity about programming styles. It is hard indeed to say much more about this book than “Go read it. You won’t be sorry.”

Reviewer:  Jeffrey Putnam Review #: CR121676 (9809-0665)
Bookmark and Share
  Featured Reviewer  
 
Ml (D.3.2 ... )
 
 
Syntax (D.3.1 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Ml": Date
Commentary on standard ML
Milner R. (ed), Tofte M. (ed), MIT Press, Cambridge, MA, 1991. Type: Book (9780262631372)
Jun 1 1992
ML primer
Stansifer R., Prentice-Hall, Inc., Upper Saddle River, NJ, 1992. Type: Book (9780135617212)
Sep 1 1993
The ML approach to the readable all-purpose language
Spooner C. ACM Transactions on Programming Languages and Systems 8(2): 215-243, 1986. Type: Article
Dec 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy