Written by a well-known computer science education and researcher. No previous knowledge of ML or functional programming is assumed. This is the first book that offers BOTH a highly accessible, step-by-step introductory tutorial on ML programming and a complete reference to, and explanation of, advanced features. The author uses a wide variety of digestible program examples to bring the reader along at a reasonable pace. More sophisticated programs and advanced concept topics balance out a book that is usable in a number of courses and settings for either self-study or class discussion.