ML

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(方言)
第1行: 第1行:
 
{{SeeWikipedia|ML (programming language)}}
 
{{SeeWikipedia|ML (programming language)}}
  
ML编程语言
+
ML 编程语言
  
 
==简介==
 
==简介==
第15行: 第15行:
  
 
ML的实力大多被用于语言设计和操作(编译器、分析器、定理证明机),但是它作为通用语言也被用于生化,金融系统,和宗谱数据库,一个P2P的客户/服务器程序等等。
 
ML的实力大多被用于语言设计和操作(编译器、分析器、定理证明机),但是它作为通用语言也被用于生化,金融系统,和宗谱数据库,一个P2P的客户/服务器程序等等。
 +
 +
==功能==
  
 
==方言==
 
==方言==
第22行: 第24行:
 
*[https://github.com/mth/yeti Yeti] is ML style functional programming language, that runs on the [[JVM]].
 
*[https://github.com/mth/yeti Yeti] is ML style functional programming language, that runs on the [[JVM]].
 
*[https://github.com/CakeML/ CakeML]
 
*[https://github.com/CakeML/ CakeML]
 +
 +
==项目==
 +
[https://smlfamily.github.io/ Standard ML Family GitHub Project]
 +
 +
==图集==
  
 
==链接==
 
==链接==

2021年12月25日 (六) 02:50的版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 ML Thanks, Wikipedia.

ML 编程语言

目录

简介

ML是一个通用的函数式编程语言,它是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的。它的语法是从ISWIM得到的灵感。作为元语言的ML是为了帮助在LCF定理证明机中寻找证明策略而构想出来的。(之前的元语言是pplambda,它联合了一阶逻辑演算和有类型的多态的λ演算)。它使用了Hindley-Milner类型推论算法来推测大多数值的类型,而不需要四处使用注解。

ML一般被归为非纯函数式编程语言,因为它允许副作用和指令式编程。这一点和纯函数式编程语言,例如Haskell很不一样。

ML特性包括:传值呼叫(Call by value)的求值策略,一级函数,带有垃圾收集的自动内存管理,参数多态,静态数据类型,类型推论,代数数据类型,模式匹配和异常处理。

不像Haskell,ML使用及早求值,也就是说所有的子表达式总是被求值。导致的一个结果是你不能使用无穷表。然而,惰性求值产生的无穷表可以通过使用匿名函数来模拟。

今天在ML家族中有好几种语言:两种主要的方言是Standard ML和Caml,其他的包括F#-针对Microsoft .NET平台的开放研究项目。ML中的思想影响了众多的语言,例如Haskell,Cyclone和Nemerle。

ML的实力大多被用于语言设计和操作(编译器、分析器、定理证明机),但是它作为通用语言也被用于生化,金融系统,和宗谱数据库,一个P2P的客户/服务器程序等等。

功能

方言

  • Standard ML
  • OCaml,ML的一种方言,支持面向对象编程。
  • F#.NET框架的ML实现。
  • Yeti is ML style functional programming language, that runs on the JVM.
  • CakeML

项目

Standard ML Family GitHub Project

图集

链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱