Standard ML

Standard ML
ParadigmMulti-paradigm: functional, imperative, modular[1]
FamilyML
First appeared1983; 41 years ago (1983)[2]
Stable release
Standard ML '97[2] / 1997; 27 years ago (1997)
Typing disciplineInferred, static, strong
Filename extensions.sml
Websitesmlfamily.github.io
Major implementations
SML/NJ, MLton, Poly/ML
Dialects
Alice, Concurrent ML, Dependent ML
Influenced by
ML, Hope, Pascal
Influenced
Elm, F#, F*, Haskell, OCaml, Python,[3] Rust,[4] Scala

Standard ML (SML) is a general-purpose, high-level, modular, functional programming language with compile-time type checking and type inference. It is popular for writing compilers, for programming language research, and for developing theorem provers.

Standard ML is a modern dialect of ML, the language used in the Logic for Computable Functions (LCF) theorem-proving project. It is distinctive among widely used languages in that it has a formal specification, given as typing rules and operational semantics in The Definition of Standard ML.[5]

  1. ^ Cite error: The named reference intro was invoked but never defined (see the help page).
  2. ^ a b Cite error: The named reference smlnj was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference itertools was invoked but never defined (see the help page).
  4. ^ "Influences - The Rust Reference". The Rust Reference. Retrieved 2023-12-31.
  5. ^ Cite error: The named reference revision was invoked but never defined (see the help page).