ML és un llenguatge de programació funcional desenvolupat per Robin Milner i altres a finals del 1970 a la Universitat d'Edimburg amb una sintaxi inspirada en el llenguatge abstracte ISWIM que ha donat lloc a una família de llenguatges.
Històricament les sigles ML es refereixen a MetaLlenguatge. És conegut per l'ús que fa de l'algorisme d'inferència de tipus Hindley-Milner.
Introducció
A l'ML se l'anomena llenguatge funcional impur perquè permet efectes laterals produint programació imperativa, contràriament a llenguatges funcionals purs com el Haskell. Per aquest motiu es considera un llenguatge de programació Multi-paradigma.
Entre les característiques de ML hi ha l'estratègia d'avaluació estricta, funcions com a valors de primer ordre, gestió de memòria per recollidors de brossa, polimorfisme paramètric, tipatge estàtic, inferència de tipus, tipus abstractes de dades, encaixos de patrons i gestió d'excepcions.
Dialectes
- SML
- ML Estàndard, incorpora semàntica formal.
- Alice ML
- llenguatge i compilador impulsats per la universitat de Saarland regió alemanya, fronterera amb França on s'anomena Sarre.
- Caml/OCaml
- llenguatge i compilador impulsats per l'entitat estatal de recerca francesa INRIA, és l'acrònim de Categorical Abstract Machine Language.
- F#
- entorn de Microsoft consistent en llenguatge basat en OCaml i biblioteques.NET; Vegeu "Programació en F#"
- LML
- "Lazy ML": llenguatge ML d'avaluació tardana desenvolupat a la Universitat Tecnològica de Chalmers de Göteborg, Suècia
- ATS
- ML amb "tipus dependents de valors" desenvolupat a la Universitat de Boston
- Parallel ML (Projecte Manticore)
- Extensió de paral·lelisme sobre Concurrent ML desenvolupat a la Univ. de Chicago.