ML一般被归为非纯函数式编程语言因为它允许副作用和指令式编程这一点和纯函数式编程语言??例如Haskell??很不一样
今天在ML家族中有好几种语言两种主要的方言是Standard ML和Caml其他的包括F# - 针对Microsoft .NET平台的开放研究项目 ML中的思想影响了众多的语言例如HaskellCyclone和Nemerle ML的实力大多被用于语言设计和操作编译器分析器定理证明机 但是它作为通用语言也被用于生化金融系统和宗谱数据库一个P2P的客户/服务器程序等等
ML可以算一种具备命令式语言特点的函数型语言或者说面向函数的命令型语言和Lisp一样ML具有非常灵活的函数功能例如一个表达式的值可能就是一个函数这个函数可以被作为参数传递给另一个函数或者函数的返回值就是一个函数同时和Algol类的语言比较接近的是ML的语法象命令型的而且用起来象用Algol家族的很多比较新的后代们一样方便而且ML有并行扩展可以用来写并行系统甚至还有面向对象扩展
John C. Mitchell在他的Concepts in Programming Langugaes一书中使用ML来展示Algol类语言Lisp类语言以及并行语言和面向对象语言中的概念
ML是Robin Milner主管LCF项目时设计的LCF项目是受Dana Scott给出的一组逻辑原则启发而设立的致力于开发一种可计算函数逻辑Logic of Computable FunctionsRobin Milner的目标是构造一个方便实用的系统来自动的或者半自动的证明函数程序中一些有趣的性质他的LCF项目于1970年在Standford开始并于1980年代在Edinburge继续进行期间取得了很多重要进展并且激发了相关领域的一系列研究工作
ML是作为LCF项目的元语言Meta Language设计的这也是其名字的来历它的最初用途是写一些可以生成数学证明的程序今天大多数著名的推理系统都是用ML写的
目前ML有两个发展分支Standard ML和Caml