ML (originally the Meta Language for the theorem prover LCF) is a class of non-lazy, statically-typed, statically-compiled, _(pattern-matching) *(functional) *(programming language)s.

ML comes in two traditions: Standard ML and CAML. Both have very efficient (on par with or faster than C++) implementations (in particular, SML/NJ and OCAML). OCAML has a cleaner module system than SML, as well as an object system.

Are you looking for a possible alternative to _(C++)? OCAML just might be your language. In particular, it is very efficient, but it's not as poorly designed as _(C++).
<br>--_(seaslug)

<ul class="links">
  <li>_("ML FAQ"|http://www.faqs.org/faqs/meta-lang-faq/)</li>
  <li>_("CAML WWW Page"|http://caml.inria.fr/)</li>
  <li>_("Efuns/GwML"|http://pauillac.inria.fr/para/cdrom/prog/unix/efuns/eng.htm) (_("french version"|http://pauillac.inria.fr/para/cdrom/prog/unix/efuns/fra.htm)), an OCAML based replacement for emacs, and GwML, an X11 window manager also written in OCAML</li>
  <li>_("SML Docs"|http://www.dcs.napier.ac.uk/course-notes/sml/manual.html)</li>
  <li>_(Fox) an SML based OS</li>
</ul>

<ul class="implementations">
  <li>_("SML/NJ"|http://cm.bell-labs.com/cm/cs/what/smlnj/index.html) outputs fast but memory-hungry binaries.
  <li>_("MLton"|http://www.mlton.org) is an optimizing SML compiler that generates executables that typically run faster than those generated by SML/NJ.
  <li>_("Edinburgh ML"|http://www.dcs.ed.ac.uk/home/edml/)</li>
  <li>_("Moscow ML"|http://www.dina.kvl.dk/~sestoft/mosml.html) is a lightweight SML.
  <li>_("Objective CAML (aka OCAML)"|OCAML)'s output is faster and less memory intensive than SML/NJ's. It can also output bytecode.</li>
  <li>_("CAML light"|http://caml.inria.fr/distrib-caml-light-eng.html). _(OCAML) is recommended over CAML light unless working in low memory conditions.
</ul>
