Programming in Standard ML '97:
Supplementary information

``These things are fun and fun is good.''
Dr. Seuss.

Lectures

The lecture log, a concise record of the lectures on the course.

Slides

Colour slides to accompany the notes. Parts 1, 2, 3, 4, 5, 6, 7 and 8.

Exercises

Some practical exercises: Practical 1 and Practical 2. The Standard ML code for Practical 2.

Standard ML resources

¤ The Comp.Lang.ML newsgroup ¤ Moscow ML ¤ Alice ML ¤ Poly/ML ¤ MLj ¤ Standard ML of New Jersey ¤ A Gentle Introduction to ML ¤ Larry Paulson's book and ML code ¤ Chris Reade's book ¤ Chris Reade's ML workshop ¤ Jeffrey Ullman's book ¤ Mads Tofte's papers ¤ Mads' introduction to modules ¤ Andrew Appel's papers ¤ Standard ML Basis Library ¤ ¤ Standard ML Basis Library at Sourceforge ¤ ¤ ML developers mailing list ¤

Some Standard ML papers for background reading

¤ A working draft of the documentation for the SML Standard Library ¤ Type Systems, Luca Cardelli ¤ A semantics for ML concurrency primitives, Dave Berry, Robin Milner and David Turner ¤ ¤ A Critique of Standard ML, Andrew Appel ¤ How ML Evolved, Robin Milner ¤ A Standard ML Compiler, Andrew Appel and Dave MacQueen ¤ A Tutorial on Co-induction and Functional Programming, Andrew Gordon ¤ Standard ML of New Jersey, Andrew Appel and Dave MacQueen ¤ A run-time system, Andrew Appel ¤ Simple Imperative Polymorphism, Andrew Wright

A note on Standard ML syntax

¤ Standard ML supports character constants such as #"a" which is the character constant for the letter A in lower case. However the hash symbol can also be used for symbolic identifiers such as ## or =# or even |#. The consequence of this is that one must on occasions introduce whitespace such as spaces, tab characters or newlines to separate character constants from neighbouring symbolic characters such as = or |. (In fact one generally needs to use whitespace around symbolic identifiers.) An easy to remember rule is always put a space before a hash when keying in the text of an SML program. Whitespace is not needed with string constants such as "a" because it is not possible to use the double quote character in a symbolic identifier. ¤

Standard ML art

¤ Luca Cardelli's cover for Ullman's book ¤ Chris Walton's ML logo ¤

Programming in Standard ML'97

¤ Back to the SML'97 notes ... ¤

Stephen Gilmore, Laboratory for Foundations of Computer Science, The University of Edinburgh. Please mail me if any links on this page are out of date.