Ml Language

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:

Standard ML [Sml 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