About ML

ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of which ML was the metalanguage is pplambda, a combination of the first-order predicate calculus and the simply-typed polymorphic lambda-calculus). It is known for its use of the Hindley-Milner type inference algorithm, which can infer the types of most values without requiring the extensive annotation often criticised in languages such as Java.

ML is often referred to as an impure functional language, because it permits side-effects, and therefore imperative programming, unlike purely functional programming languages such as Haskell.

Features of ML include call-by-value evaluation strategy, first class functions, automatic memory management through garbage collection, parametric polymorphism, static typing, type inference, algebraic data types, pattern matching, and exception handling.

Today there are several languages in the ML family; the two major dialects are Standard ML and Caml, but others exist, including F#. Ideas from ML have influenced numerous other languages, such as Haskell, Cyclone, and Nemerle.

ML's strengths are mostly applied in language design and manipulation (compilers, analyzers, theorem provers), but it is a general-purpose language also used in bioinformatics, financial systems, and applications including a genealogical database, a peer-to-peer client/server program, etc.

(taken from


  • ocaml (object oriented Caml implementation)
  • smlnj (SML compiler)
  • mosml (SML compiler)

Packaging ML

  • TODO

Which MOTU has knowledge?


MOTU/Teams/UncommonProgrammingLanguages/ML (last edited 2008-08-06 17:00:32 by localhost)