The primary goal of this document is to help current SML programmers learn to use SML '97 (as implemented in SML/NJ 110), and to help them convert old SML code to SML '97. It concentrates on changes in the language and libraries, and assumes some familiarity with SML. However, it should also be of some use to new SML programmers, as a supplement to one of the available textbooks or tutorials.
The new SML '97 language itself is defined in The Definition of Standard ML (Revised), hereafter refered to as "the Definition". Appendix G of that book briefly summarizes the language changes, mainly from the point of view of the language semantics. The treatment here expands on that description, taking the point of view of a programmer. Note that the second editions of Paulson's and Ullman's books describe SML '97.
The other major changes are encompassed in an extensive new Basis library that replaces the minimal initial basis described in Appendices C and D of the original SML '90 Definition.
This section is a more detailed exploration of the changes summarized in appendix G of the new Definition.