For sophomore through graduate level courses covering an introduction to the fundamentals of ML programming or as a supplement for programming languages, functional programming, or compiler courses. Written by renowned computer science educator and researcher Jeffrey Ullman, this text assumes no previous knowledge of ML or functional programming. This second edition has been heavily revised and updated using ML 97. This is the first book that offers BOTH a highly accessible, step-by-step introductory tutorial on ML programming and a complete explanation of advanced features. The author uses a wide variety of program examples to show how ML can be used in a variety of applications. More sophisticated programs and advanced concepts make this book usable in a number of courses for self-study or class discussion.