Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
ML (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|General purpose functional programming language}} {{Other uses|ML (disambiguation){{!}}ML}} {{More citations needed|date=May 2015}} {{Infobox programming language | name = ML | logo = | paradigm = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Generic programming|generic]], [[Imperative programming|imperative]] | designer = [[Robin Milner]], others at the [[University of Edinburgh]] | developer = | released = {{Start date and age|1973}} | latest release version = | latest release date = | typing = [[Type inference|Inferred]], [[Static typing|static]], [[Strong and weak typing|strong]] | implementations = | dialects = [[Caml]], [[OCaml]], [[Standard ML]], [[F Sharp (programming language)|F#]] | influenced by = [[ISWIM]] | influenced = [[Caml]], [[Clojure]], [[Coq (software)|Coq]], [[Cyclone (programming language)|Cyclone]], [[C++]], [[Elm (programming language)|Elm]], [[F Sharp (programming language)|F#]], [[F* (programming language)|F*]], [[Haskell]], [[Idris (programming language)|Idris]], [[Kotlin (programming language)|Kotlin]], [[Miranda (programming language)|Miranda]], [[Nemerle]], [[Opa (programming language)|Opa]], [[Erlang (programming language)|Erlang]], [[Rust (programming language)|Rust]], [[Scala (programming language)|Scala]], [[Standard ML]] | operating system = | license = | website = }} '''ML''' ('''Meta Language''') is a [[General-purpose programming language|general-purpose]], [[High-level programming language|high-level]], [[Functional programming|functional]] [[programming language]]. It is known for its use of the polymorphic [[Hindley–Milner type system]], which automatically assigns the [[data type]]s of most [[Expression (programming)|expressions]] without requiring explicit type annotations ([[type inference]]), and ensures type safety; there is a [[formal proof]] that a well-typed ML program does not cause runtime type errors.<ref>Robin Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348–375, 1978.</ref> ML provides pattern matching for function arguments, [[Garbage collection (computer science)|garbage collection]], [[imperative programming]], [[call-by-value]] and [[currying]]. While a [[general-purpose programming language]], ML is used heavily in [[Programming language theory|programming language research]] and is one of the few languages to be completely specified and verified using [[Formal semantics of programming languages|formal semantics]]. Its types and pattern matching make it well-suited and commonly used to operate on other formal languages, such as in [[compiler writing]], [[automated theorem proving]], and [[formal verification]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)