[To obtain the latest versions of the documents in this section, see the document home sites index.]

The ML language

Development tools · Tutorials and FAQs · Reference materials · External resources

ML is a functional language which, unlike conventional (procedural) languages, is mathematically "pure". Assignment to variables is not possible; a variable is defined as in mathematics as being equal to a particular value, so a statement such as "X = X + 1" would make no sense, as there is no value of X which is equal to X + 1. There are also no explicit control flow operations (loops, goto statements and so on); recursive function definitions are used to achieve the same effect.


Development tools:

Moscow ML, a free ML implementation for DOS
Caml Light, a free ML implementation for Windows 95/NT (or Windows 3.1 if you've installed Win32s)
An older version of Caml Light for DOS on 386 and later processors
Objective Caml, an object-oriented version of Caml for Windows 95/NT from INRIA


Tutorials and FAQs:

A Gentle Introduction to ML
The Moscow ML Language Overview
The ML FAQ
The Functional Programming FAQ


Reference materials:

The Moscow ML Owner's Manual
A quick reference guide to the syntax of ML
A list of ML functions
The Objective Caml User's Guide


External resources:

Information about Standard ML at the Fox Project at CMU
Information about Standard ML of New Jersey
The Caml home page
The Moscow ML home page
Harlequin's MLWorks implementation
ML links at Yahoo (or at Yahoo UK)
The newsgroup comp.lang.ml