Aviva Directory » Computers & Internet » Programming » ML (languages)

Named for Meta Language, ML is a general-purpose, functional programming language designed by Robert Milner and a team of developers at the University of Edinburgh in 1973.

The language uses the Hindley-Milner type system, which is now used by most functional languages, although ML was the first to implement it as part of its type system. It automatically assigns the types of most expressions without the need for explicit type annotations, and it ensures type safety. A well-written ML program does not include runtime type errors.

ML is frequently used in programming language research, being one of a few languages that are completely specified and verified using formal semantics. It can be used to operate on other formal languages, such as in compiler writing, automated theorem proving, and formal verification. ML is a general-purpose language, but its strengths lie in language design and manipulation.

Although ML is a functional programming language, in that it encourages functional programming, but it is an impure functional language because it does allow side-effects that a purely functional language, like Haskell, would not.

Other languages in the ML family include Dependent ML, F#, Lazy ML, Ocaml, PAL, and Standard M, the latter of which itself has spawned Alice ML, MLton, Moscow ML, and SML/NJ.

The focus of this category, obviously, is on the ML family of programming languages, although languages for which we have enough resources may be included in a subcategory. IDEs, editors, or other tools designed to facilitate programming with the language are also appropriate here, as are ML user groups, forums, tutorials, guides, or other resources.


Alice ML


F Sharp

Standard ML



Recommended Resources

Search for ML (languages) on Google, Bing, or Yahoo!