The new edition of this successful and established textbook retains its two original intentions of explaining how to program in the ML language, and teaching the fundamentals of functional programming. The major change is the early and prominent coverage of modules, which are extensively used throughout. In addition, the first chapter has been totally rewritten to make the book more accessible to those without experience of programming languages. The main features of new Standard Library for the revised version of ML are described and many new examples are given, while references have also been updated. Dr Paulson has extensive practical experience of ML and has stressed its use as a tool for software engineering; the book contains many useful pieces of code, which are freely available (via the Internet) from the author. He shows how to use lists, trees, higher-order functions and infinite data structures. Many illustrative and practical examples are included.. Efficient functional implementations of arrays, queues, priority queues, etc. are described. Larger examples include a general top-down parser, a lambda-calculus reducer and a theorem prover. The combination of careful explanation and practical advice will ensure that this textbook continues to be the preferred text for many courses on ML.
My interest in learning ML started with reading the writings of people like Paul Graham who extoll the virtues of functional programming. ML seemed like the most accessible language for someone coming from an imperative oop background (due to the absence of '(' ... ')' which permeate Lisp and Scheme). There is however a dearth of introductory material on the web and what is out there seems to offer a piece meal, fragmentary overview. So I picked up this book and was not disappointed. Paulson does an excellent job of introducing ML concepts in a clear logical manner. This book is about a lot more than ML though. Paulson teaches functional programming in this book with ML as the vehicle. This is a great book for self study. So why not five stars? The typesetting is horrendous. This is not a pretty book. I think pretty much everyone will admit that ML never gained a lot of traction (Ocaml a bit more than SML I believe). The main problem I see with using ML for a large project is the lack of library support. So why learn ML? It turns out that ML has had an influence on new languages that have come out in recent years; F# and Scala are two. So time spent with ML should pay off when exploring these newer languages and whose close association with the .Net and Java platforms (respectively) cures the library availability dilemma.
Very Worthwhile
Published by Thriftbooks.com User , 20 years ago
If you are looking for a book that will help extend your professional qualifications this is not it. However if work through this book you will emerge with much stronger programming skills in any programming language and gain some important insights in to writing intelligent programs. The book teaches Standard ML. Standard ML is a clean, modern, strongly typed, functional programming language. Some SML compilers generate code that ranks among the best for higher level languages. Standard ML comes out of a community that has been interested in developing logical theorem provers and tools for formal analysis of programs. Don't let this scare you away -- any reasonably bright programmer should be able to follow Paulson's explanations. The book provides an accessible introduction to programming with recursive functions, higher order functions (functions that process functions) and working with a language with polymorphic types (a little like C++'s templates but the compiler figures out the types). This is as much a book on algorithms and data structures from a functional point of view as it is a book on Standard ML. I especially like the book's development of more advanced examples in the last two chapters. These have to do with writing programs that implement some key ideas in logic and computability theory. These were easy to follow even for a non-expert. I have a strong interest in how programs can be made to reason and learn and so these were really interesting.
Good introductory book with some advanced chapters
Published by Thriftbooks.com User , 25 years ago
If you want to know something about ML, but learn it through good examples and interesting problems. This is the book! Also has some neat chapters on automated theorem proving, logic and interpreters.
ThriftBooks sells millions of used books at the lowest everyday prices. We personally assess every book's quality and offer rare, out-of-print treasures. We deliver the joy of reading in recyclable packaging with free standard shipping on US orders over $15. ThriftBooks.com. Read more. Spend less.