This highly accessible introduction to the fundamentals of ML is presented by computer science educator and author, Jeffrey D. Ullman. The primary change in the Second Edition is that it has been thoroughly revised and reorganized to conform to the new language standard called ML97. This is the first book that offers both an accurate step-by-step tutorial to ML programming and a comprehensive reference to advanced features. It is the only book that focuses on the popular SML/NJ implementation. The material is arranged for use in sophomore through graduate level classes or for self-study. This text assumes no previous knowledge of ML or functional programming, and can be used to teach ML as a first programming language. It is also an excellent supplement or reference for programming language concepts, functional programming, or compiler courses.