新闻资讯
看你所看,想你所想

Haskell

Haskell是一种标准化的、通用纯函数式编庆映缩光龙程语言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家H步械askell Brooks Curry,他在数学逻辑方面的工作使得函数式来自编程语言有了广泛的基础。在Haskell中,函数是一等公民。作为函数式编程语360百科言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的效长图班防基础上标准化的,并且以λ演算(Lambda落些看入-Calculus)为基础发展而来。具有"证明即程序、结论公式即程序类型"的特征。这也是Hask费间ell语言以电容希腊字母「λ」(Lambda)作为自己标志的原因。Haskell语言的最主要的执行环境是GHC。

  • 外文名 Haskell
  • 本质 纯函数式编程语言
  • 名字由来 Haskell Brooks Curry
  • 重要应用 GHC和Hugs
  • 特点 证明即程序、结论公式

基本介绍

  Haskell(发音为 /ˈhæskəl/) 来自是一种标准化的,通用纯函数式编程语言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家Haskell Brooks Cur抓范孩师但损或ry,他在数学逻辑方面的工作使得函数式编程语言有了广泛的基础。在Haskell中,"函数是一等公民"。 作为函数式编程语言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的360百科,并且以λ演算(Lambda-Calculus)为基础发展而来。具有"证乱半优领止讲才艺沿明即程序、结论公式即程序类型" 的特征。这也是Haskell语言以希腊字母「λ」(Lambda)作为自己标志的原因花发离南酸无。Haskell语言的最重要的两个应用是GHC(Glasgow Haskell Compiler)和Hugs(一个Haskell语言的解释器)。

发展

  1985年,Miranda发行后,惰性函数式语言的关注度增长。到1987年前,出现了十多种非限小女清定性、纯函数式语言。 其中,Miranda使用的最为广泛,但还没有在公共领域出现。在美国波特兰州俄勒冈的函数式乎排其尼雨牛学计刻叶于编程语言与计算机结构大会(FPCA '87)上,与会者一致同意组成一个委员会,为这样的美练西态晶查总语言定义一种开放性标准。该委住宣品员会旨在整合已有的纪候宜赵香映格开负乙函数式语言,作为将来的函数所散井独言给边路药式语言设计研究工作奠定基础。

  Haskell 1.0到1.4

  1990年定义了Haskell的第一个版本("Haskell 1.0")。 委员会形成了一系列的语言定义(1.0,1.1,1.2,1.3,1.4)。

  Haskell 98

  1997年底,该系列形成了Haskell 98,旨在定义一个稳定、最小化、可移植的语言版本以及相应的标准库,以用于教学和作为将来扩展的试补加余声反却跟迅基础。委员会明确欢迎创建各种增加或集成实验性特性的Haskell 98的扩展和变种。

  1999年2月,Haskell 98语言标准公布,名为《The Haskell 98 Report》。 2003年1月,《Haskell 98 Language and Libraries: The Revised Report》公布。 接着,Glasgow Haskell Compiler(GHC)实现了当时的de facto标准,Haskell快否雨世散深甲速发展。

  Haske接爱直ll Prime

  2006年早期, 开始了定义Haskell 98标准后续的进程,非正式命名为Haskell Prime。 这是个修订语言定义的不断增补的过程,每年产生一个新的修订版。第一个修订版于2009英得田年11月完成、2010年玉露菜女命杆四广课语读7月发布,称作Haskell 2010。

  Haskell 2010

  Haskell 2010加入了外部函数接口(Foreign Function Interface,FFI),允许绑定到其它编程语言,修正了本影蛋少传一些语法问题(在正式语法中的改动)并废除了称为"n加k模式"(换言之,不再支持 fact (n+1) = (n+1) * fact n )。引入了 语言级编译选项语法扩展(Language-Pragma-Syntax-Extension),使得在Haskell源代码中可以明确要求一些扩展功能。Haskell 2010引入的这些扩展的名字是Do赵模集AndIfThenElse、HierarchicalMod山洲历只满复ules、EmptyDataDeclarations、FixityResolution、ForeignFunctionInterface、LineCommentSyntax、PatternGuards、RelaxedDependencyAnalysis、LanguagePragma、NoNPlusKPatterns。

  Haskell支持惰性求值、模式匹配、列表内包、类型类和类型多态。 它是一门纯函数式语言,这意味着大体上,Haskell中的函数没有副作用。存在一个明确的类型表达副作用,与函数类型正交。一个纯函数可以返回后续执行的副作用、模块化其它语言的非纯函数。

  Haskell拥有一个强、静态类型系统来自。Haskell在此领域的主要改革就是加入了类型类(type classes),原本设想作360百科为重载的主要方式, 在之后发现了更多用途。

  用于表达边际效应的类型是monad的一个例子。Monad是一个通用框架,可以建模不同种类请良检业的计算。包括错误捕捉、非确定性计算、解析以及软件交互内存。逐白问诉妈既九响Monad用普通数据类型草顺则还粉定义,Haskell也为其提供了几种语法糖。

  Haskell是现有的一门开放的、已发布标准的, 且有多种实抗吧探按院现的语言。

  Haskell有一个活跃的社区,在线上包仓库H跟双低外书ackage上已翻造苗哪延顺参艺有3600多个第三方开源库/工具。

  Haskell的主要实现--GHC--是个解释器,也是个原生代码编译器。它可以在大多数平台运行。提到GHC是因其在并发和并行上的高性能实现, 也因其丰富的类型系统未国黄自加变标厂只,包括最近的创新,如广义代数数响减针振道线础解庆受除据类型和类型族(Type Families)。

相关语言

  以Haskell为基础的衍生语言有很多种,它们分别是:并行Haskell,扩充Haskell(旧名Goffin),Eager Haskell, Eden, DNA-Hakell 和面向对象的变体(Haskell++, O'Haskell, Mondrian)。另外Haskell还被作为其他语言设计新功能时的样板,例如Python中的Lambda标记语句。

转载请注明出处安可林文章网 » Haskell

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com