The Functional Programming Language ML was originally developed by Robin Milner (Turing Award 1991) and was the first language to include Polymorphic Type Inference, together with a type-safe exception-handling mechanism. ML stands for Meta Language, not for Markup Language. ML is not Machine Language.
ML is a Strongly Typed, Statically Typed language with semantics somewhat resembling those of the Scheme Language.
ML provides the following features:
automatic Type Inference:
Don't write types yourself, let the compiler do it for you!
mostly declarative syntax using Pattern Matching
Generic Types:
Somewhat like C++'s templates (see Category Cpp Templates).
Parametric Modules (functors):
Modules can take other modules as an argument. (As far as I know, this is unique for ML.) (Answer Me: I've tried to research this on the web aeons ago, and my understanding of how functors work still eludes me. Can someone point a clueless n00b to a step-by-step tutorial or fill in the gaps on How Ml Functors Work ? Thanks!)
Unlike Haskell [Haskell Language] (and like Lisp Language and Scheme), ML is strict: the arguments to a function are always evaluated before evaluating the body of the function (see Strict Evaluation and Lazy Evaluation).
There are three ML dialects in wide use:
O'Caml [Objective Caml]
Standard ML [Sml Language]
F# [Fsharp Language]
See www.mpi-sws.mpg.de for a concise description of the differences between O'Caml and Standard ML.
Can we see some code snippet and syntax/notation examples here?
Maybe some Sml Language examples would satisfy. There is an example at that page already.
See original on c2.com