徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
安装
比浏览器更快的访问!
 

Haskell

指数 Haskell

Haskell()是一种标准化的,通用的纯函數程式語言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是第一類物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征, with 2 sections by William Craig, see paragraph 9E。.

29 关系: 单子多态复合函数希腊字母异常处理俄勒冈州哈斯凱爾·加里函数函数式语言函数副作用函數程式語言第一類物件米兰达类 (计算机科学)編譯器直譯器階乘计算机协会语法语法糖软件事务内存逻辑学家递归Hello WorldML语言Python模組波特兰惰性求值

单子

单子(monad,也译单体)是函数式编程中的一种抽象数据类型,其特别之处在于,它是用来表示计算而不是数据的。在以函数式风格编写的程序中,单子可以用来组织包含有序操作的过程,或者用来定义任意的控制流(比如处理并发、异常、延续)。 单子的构造包括定义两个操作bind和return,还有一个必须满足若干性质的类型构造器M。 Category:函數式編程.

新!!: Haskell和单子 · 查看更多 »

多态

#重定向 多型.

新!!: Haskell和多态 · 查看更多 »

复合函数

在数学领域,两个函数的复合函数指一个将第一个函数作用于参数,然后再将第二个函数作用于所得结果的函数。 具体来说,给定两个函数f: X → Y和g: Y → Z,其中f的陪域等于g的定义域(称为f、g可复合),则其复合函数h.

新!!: Haskell和复合函数 · 查看更多 »

希腊字母

希臘字母源自腓尼基字母。腓尼基字母只有辅音,從右向左寫。希臘語的元音发达,希臘人增添了元音字母。因為希臘人的書寫工具是蠟板,有时前一行從右向左寫完後順势就從左向右寫,變成所謂“耕地”式書寫,後來逐漸演變成全部從左向右寫。字母的方向也顛倒了。罗马人引進希臘字母,略微改變變為拉丁字母,在世界廣為流行。希臘字母廣泛應用到學術領域,如數學等。.

新!!: Haskell和希腊字母 · 查看更多 »

异常处理

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。 各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。例如,C语言中的atoi函数(ASCII串到整数的转换)在输入非法时可以返回0。在这种情况下编程者需要另外进行错误检测(可能通过某些辅助全局变量如C的errno),或进行输入检验(如通过正则表达式),或者共同使用这两种方法。 通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。 从进程的视角,硬件中断相当于可恢复异常,虽然中断一般与程序流本身无关。 从子程序编程者的视角,异常是很有用的一种机制,用于通知外界该子程序不能正常执行。如输入的数据无效(例如除数是0),或所需资源不可用(例如文件丢失)。如果系统没有异常机制,则编程者需要用返回值来标示发生了哪些错误。.

新!!: Haskell和异常处理 · 查看更多 »

俄勒冈州

俄勒冈州(State of Oregon)是美国的一个州,位于美国西北的太平洋沿岸,西临太平洋、北接华盛顿州、东面是爱德荷州、南面是加利福尼亚州和内华达州。2012年人口3,899,353。州别称:海狸州,邮编代号OR。本州的行政區劃,共管轄36個郡。.

新!!: Haskell和俄勒冈州 · 查看更多 »

哈斯凱爾·加里

#重定向 哈斯凯尔·柯里.

新!!: Haskell和哈斯凱爾·加里 · 查看更多 »

函数

函數在數學中為兩集合間的一種對應關係:輸入值集合中的每項元素皆能對應唯一一項輸出值集合中的元素。例如實數x對應到其平方x2的關係就是一個函數,若以3作為此函數的輸入值,所得的輸出值便是9。 為方便起見,一般做法是以符號f,g,h等等來指代一個函數。若函數f以x作為輸入值,則其輸出值一般寫作f(x),讀作f of x。上述的平方函數關係寫成數學式記為f(x).

新!!: Haskell和函数 · 查看更多 »

函数式语言

#重定向 函數程式語言.

新!!: Haskell和函数式语言 · 查看更多 »

函数副作用

在计算机科学中,函数副作用指当调用函数时,除了返回函数值之外,还对主调用函数产生附加的影响。例如修改全局变量(函数外的变量)或修改参数。 函数副作用会给程序设计带来不必要的麻烦,给程序带来十分难以查找的错误,并降低程序的可读性。严格的函数式语言要求函数必须无副作用。 下面是函数的副作用相关的几个概念,纯函数(Pure Function)、非纯函数(Impure Function)、引用透明(Referential Transparent)。.

新!!: Haskell和函数副作用 · 查看更多 »

函數程式語言

函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.

新!!: Haskell和函數程式語言 · 查看更多 »

第一類物件

一類物件(First-class object)在電腦科學中指可以在執行期創造並作為參數傳遞給其他函數或存入一個變數的實體。將一個實體變為第一類物件的過程叫做「物件化」(Reification)。 「第一類物件」這一名稱最早由克里斯托弗·斯特雷奇在1960年代發明,原稱「第一類公民」(First-class citizen),意指函數可作為電腦語言中的第一類公民。英文中也稱「First-class entity」或「First-class value」。.

新!!: Haskell和第一類物件 · 查看更多 »

米兰达

米兰达可以指:.

新!!: Haskell和米兰达 · 查看更多 »

类 (计算机科学)

在物件導向程式設計,类(class)是一种面向对象计算机编程语言的构造,是创建对象的蓝图,描述了所创建的对象共同的和方法。 类的更严格的定义是由某种特定的元数据所组成的内聚的包。它描述了一些对象的行为规则,而这些对象就被称为该类的实例。类有接口和结构。接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中数据如何划分为多个属性。类是与某个层的对象的最具体的类型。类还可以有运行时表示形式(元对象),它为操作与类相关的元数据提供了运行时支持。 支持类的编程语言在支持与类相关的各种特性方面都多多少少有一些微妙的差异。大多数都支持不同形式的类继承。许多语言还支持提供封装性的特性,比如访问修饰符。类的出现,为面向对象编程的三个最重要的特性(封装性、继承性、多态性),提供了实现的手段。.

新!!: Haskell和类 (计算机科学) · 查看更多 »

編譯器

编译器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。 它主要的目的是將便于人编写、阅读、维护的高级计算机语言所寫作的原始碼程式,翻译为计算机能解读、运行的低阶机器语言的程序,也就是執行檔。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高阶语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。 一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 執行檔(executables), 最後打包好的檔案就可以給電腦去判讀執行了。.

新!!: Haskell和編譯器 · 查看更多 »

直譯器

譯器(interpreter),是一種電腦程式,能夠把高階程式語言一行一行直接轉譯執行。直譯器像是一位「中間人」,每次執行程式時都要先轉成另一種語言再作執行,因此直譯器的程式運行速度比較緩慢。它不會一次把整個程式轉譯出來,而是每轉譯一行程式敘述就立刻執行,然後再轉譯下一行,再執行,如此不停地進行下去。 直譯器的好處是它消除了編譯整個程式的負擔,程式可以拆分成多個部分來模組化,但這會讓執行時的效率打了折扣。相對地,編譯器已一次將所有原程式碼翻譯成另一種語言,如機械碼,執行時便無需再依賴編譯器或額外的程式,故而其運行速度比較快。.

新!!: Haskell和直譯器 · 查看更多 »

階乘

一个正整数的階乘(factorial)是所有小於及等於該數的正整數的積,并且有0的阶乘为1。自然數n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。 亦即n!.

新!!: Haskell和階乘 · 查看更多 »

计算机协会

计算机协会(Association for Computing Machinery,简称ACM)是一个世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会,亦是現時全球最大的電腦相關學會。ACM每年都出版大量電腦科学的专门期刊,并就每项专业设有兴趣小组。兴趣小组每年亦会在全世界(但主要在美国)举办世界性讲座及会谈,以供各会员分享他们的研究成果。近年ACM积极开拓网上学习的渠道,以供会员在工作之余或家中提升自己的专业技能。截止20世纪末,ACM在全球拥有75,000个以上的成员,包括遍及学术界、工业、研究和政府领域的学生和计算机专业人员。成员的最高荣誉是会士(Fellow)。 ACM通过它的35个特别兴趣组(Special Interest Group,SIG)提供特殊的技术信息和服务。这些特别兴趣组集中于计算机学科的多种专业,如计算机系统结构专业组(computer architecture,SIGARCH)和计算机图形与互动技术专业组(computer graphics and interactive techniques,SIGGRAPH)。这些特别兴趣组中有不少是跨学科的,适合计算机行业以外的人员。例如有不少艺术家参与到图形互动小组中。 ACM通过支持全球700个以上的专业和学生组织,为当地和地区团体提供服务。其中约有20%不在美国境内。这些组织为专业人士提供服务,搜集信息,准备讲座,组织研讨会和竞赛。 ACM主要成员刊物是Communications of the ACM,刊有一些广泛兴趣的文章,并对每月不同的热点问题展开讨论。ACM也出版了不少获得业内认可的期刊,这些期刊覆盖了计算机领域相当广泛的领域。 ACM主办了8个主要奖项,来表彰计算机领域的技术和专业成就。最高奖项为图灵奖(Turing Award),常被形容为计算机领域的诺贝尔奖。.

新!!: Haskell和计算机协会 · 查看更多 »

语法

语言学中语法(Grammar)是指任意自然语言中控制子句、词组以及单词等结构的规则,这一概念也被用来指对于这些规则进行研究的学科,例如词法学、语法学或音韵学等,并和其他学科如语音学、语义学或语用学互相补充。在很多文献中,语言学家通常不用“语法”来指正寫法。.

新!!: Haskell和语法 · 查看更多 »

语法糖

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·蘭丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。 举例来说,许多程序语言提供专门的语法来对数组中的元素进行引用和更新。从理论上来讲,一个数组元素的引用涉及到两个参数:数组和下标向量,比如这样的表达式,get_array(Array, vector(i, j))。然而,许多语言支持这样直接引用 Array。同理,数组元素的更新涉及到三个参数,set_array(Array, vector(i, j), value),但是很多语言提供这样直接赋值,Array.

新!!: Haskell和语法糖 · 查看更多 »

软件事务内存

在计算机科学中,软件事务内存(Software transactional memory,縮寫為STM),又譯為交易記憶體,軟體交換式記憶體,是一种并发控制机制,模拟数据库事务的機制,控制在并行计算时对共享内存的访问控制。它是锁的一种替代机制。在STM中,一个事务指的是一段读、写共享内存的代码。这些读写操作在逻辑上是一个独立的单元,其中间状态对于其它的事务而言,是不可见的。.

新!!: Haskell和软件事务内存 · 查看更多 »

逻辑学家

逻辑学家是学术研究主题为逻辑学的哲学家,数学家或其他人。下面按姓氏的英语的字母顺序列出著名的逻辑学家。.

新!!: Haskell和逻辑学家 · 查看更多 »

递归

递归(Recursion),又译为--,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。.

新!!: Haskell和递归 · 查看更多 »

Hello World

Hello, World是指在電腦螢幕顯示「Hello, World!」(你好,世界!)字串的電腦程式。相關的程式通常都是每種電腦編程語言最基本、最簡單的程序,也會用作示範一個編程語言如何運作。同時它亦可以用來確認一個編程語言的變電器、程序開發環境及運行環境是否已經安裝妥當。因為寫法簡單可見,這也是很多初學者首次接觸程式語言時會撰寫的程序。.

新!!: Haskell和Hello World · 查看更多 »

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的客户/服务器程序等等。.

新!!: Haskell和ML语言 · 查看更多 »

Python

Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.

新!!: Haskell和Python · 查看更多 »

模組

模組(module)是指由數個具基礎功能之元件/組件組成之具特定功能之組件,該組件用以組成具完整功能之系統、裝置或程式;泛用於各軟/硬體領域。 通常以其功能/用途命名,如散熱模組、記憶體模組、遊戲模組...

新!!: Haskell和模組 · 查看更多 »

波特兰

波特兰(Portland)可以指:.

新!!: Haskell和波特兰 · 查看更多 »

惰性求值

在程式語言理論中,惰性求值(Lazy Evaluation),又譯為惰性计算、懒惰求值,也稱為傳需求調用(call-by-need),是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作。它有两个相关而又有区别的含意,可以表示为“延迟求值”和“最小化求值”,本条目专注前者,后者请参见最小化计算条目。除可以得到性能的提升外,惰性计算的最重要的好处是它可以构造一个无限的数据类型。 惰性求值的相反是及早求值,这是一个大多数编程语言所拥有的普通计算方式。.

新!!: Haskell和惰性求值 · 查看更多 »

重定向到这里:

Haskell程式語言Haskell语言

传出传入
嘿!我们在Facebook上吧! »