ML (programming language)

related topics
{math, number, function}
{language, word, form}
{company, market, business}

ML is a general-purpose functional programming language developed by Robin Milner and others in the early 1970s at the University of Edinburgh,[1] whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage: it was conceived to develop proof tactics in the LCF theorem prover (whose language, pplambda, a combination of the first-order predicate calculus and the simply typed polymorphic lambda-calculus, had ML as its metalanguage). It is known for its use of the Hindley–Milner type inference algorithm, which can automatically infer the types of most expressions without requiring explicit type annotations.

Contents

Overview

ML is often referred to as an impure functional language, because it does not encapsulate side-effects, unlike purely functional programming languages such as Haskell.

Features of ML include a 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.

Unlike Haskell, ML uses eager evaluation, which means that all subexpressions are always evaluated. However, lazy evaluation can be achieved through the use of closures. Thus one can create and use infinite streams as in Haskell, however, their expression is comparatively indirect.

Full article ▸

related documents
Boolean ring
Merkle-Hellman
Trie
Definable real number
Chain rule
Generalized mean
Base (topology)
Preorder
Presburger arithmetic
Idempotence
Ring (mathematics)
Assignment problem
Monster group
Pigeonhole principle
Outer product
Richard's paradox
Extended real number line
Oracle machine
Meromorphic function
Splitting lemma
2 (number)
Haar measure
Queue (data structure)
Unicity distance
XSL Transformations
Riemann mapping theorem
Axiom of pairing
Mathematical model
B-tree
Legendre symbol