NEXT ·  UP ·  PREVIOUS ·  CONTENTS ·  INDEX

Reading material

An excellent textbook to accompany these notes is Paulson 's ``ML for the Working Programmer (Second Edition)'' [Pau96]. In fact, at the time of writing, this is the only textbook which can be recommended without reservation because it is the only textbook which deals with the 1997 revision of the Standard ML language--sometimes called SML'97--the other textbooks refer to the 1990 issue of the language standard, and some even pre-date that. Of particular interest in Paulson's book are the chapters devoted to the module system of Standard ML and the material on proving the correctness of a function with respect to a description of its behaviour. The book contains many exercises and specimen answers for some of these can be obtained from Paulson's Web page.

Good books which refer to the 1990 revision of the language are Ullman 's ``Elements of ML Programming'' [Ull94], Sokolowski 's ``Applicative High-Order Programming'' [Sok91] and Reade 's ``Elements of Functional Programming'' [Rea89]. These also contain exercises but they do provide specimen solutions, at least for selected exercises.

Harper 's ``Introduction to Standard ML'' [Har89] is published as a University of Edinburgh technical report and gives a concise description of the Standard ML core language and the modules system. Material on the verification of functions is not included. There are many exercises with specimen answers.

Another Edinburgh technical report which concentrates primarily on modules is Tofte 's ``Four lectures on Standard ML'' [Tof89]. A careful account of the static semantics of modules is given which makes clear the crucial notions of sharing and signature matching.

Textbooks suitable for someone with no programming experience are Bosworth 's ``A practical course in programming using Standard ML'', Michaelson 's ``Elementary Standard ML'', Wikström 's ``Functional programming using Standard ML'' and ``Programming with Standard ML'' by Myers , Clack  and Poon . All of these contain exercises and specimen solutions. Wikström's book is quite dated and some of the code fragments which appear in the book will no longer be accepted by Standard ML because of revisions to the language. None of these give a thorough introduction to Standard ML modules and some miss them out entirely (Wikström and Bosworth).

The definitive definition of the Standard ML programming language is given in ``The Definition of Standard ML (Revised 1997)'' by Milner , Tofte , Harper  and MacQueen . This is not a reference manual for the language: rather it is a formal definition giving rules which define the simple constructs of the language in terms of familiar mathematical objects and define the complex constructs of the language in terms of the simpler ones. The definition is complemented by Milner and Tofte's ``Commentary on Standard ML'' which relates the definition to the user's view of the language.

NEXT ·  UP ·  PREVIOUS ·  CONTENTS ·  INDEX