根据
haskell的
官方定义,haskell是polymorphically(多态) statically typed静态类型), lazy(懒计算), purely functional language(纯函数程序设计语言).而函数程序设计语言都是以
lambda calculus为理论基础的。事实上,现在越来越多的编程语言(如
python,
ruby,
f#等)也加入了函数程序设计语言的特征。函数程序设计语言与其他的程序设计语言最大的不同在什么地方呢?函数程序设计语言最大的特点在于只需要告诉计算机做什么,然后即可得到结果。其他的程序设计语言则需要告诉计算机怎么做,然后才能得到结果。这也就是what to do 和how to do的区别。换句话说,函数程序设计语言编程需要更多的时间来考虑设计,如果设计考虑完善,那么代码编写应该是很容易直观的。个人感觉不同的程序设计语言都有自己不同的适合领域,就像c语言适合于系统编程,haskell应该更适用于数学方面的应用(其理论基础是lambda calcus,与图灵机是完全等价的),比如计算机数学方面的教学或者解决一些数学问题。当然,haskell还能做到更多(跟其他很多编程语言如
perl,
python,
tcl,
ruby一样几乎可以用来完成所需要的任何功能,但不一定是最适合的)从网络到系统编程、图像设计等等都完全可以实现,但我对haskell的了解还很肤浅,只能介绍一些基本的知识。
haskell语言的程序代码非常紧凑,通常其代码量仅仅是c/c++等语言的几分之一,这能很好的减小项目管理上的负担。比如我想找出从1到1000之间所有能被同时被3,5,7整除的数,那么一行代码就解决了:
[x|x<-[1..1000],x `mod` 3 == 0, x `mod` 5 == 0, x `mod` 7 == 0]
如果对haskell感兴趣,可以到
tryhaskell尝试一些简单的编程,直接在网页中输入代码即可。
haskell相关书籍:
learn you a haskell
real world haskell
实用手册:
haskell cheatsheet
haskell 98 languages and librarys report
更多内容见
haskell wiki
分享到:
相关推荐
无涯教程网(learnfk)整理提供:Haskell是一种标准化的,通用的纯函数编程语言,有非限定性语义和强静态类型
haskell语言教材 Haskell(发音为 /ˈhæskəl/)是一种纯函数式编程语言,它的命名源自美国数学家哈斯凯尔·加里,他在数学逻辑方面上的工作使得函数式编程语言有了广泛的基础。Haskell语言是1990年在编程语言...
Haskell 函数式程序设计语言 经典教材 2016年第二版 Haskell is a purely functional language that allows programmers to rapidly develop software that is clear, concise and correct. This book is ...
随着软件系统的规模越来越大,复杂程度越来越高,计算机学科领域正面临着一场软件复杂性 危机:如何妥善处理...Haskell是现代 的、标准的、惰性的、纯函数式程序设计语言,它具有表达力强的语法,以及丰富的内置数据类型。
15.8 Haskell 649 15.9 Applications of Functional Languages 653 15.10 A Comparison of Functional and Imperative Languages 653 Summary • Bibliographic Notes • Review Questions • Problem Set • ...
哈斯克尔 作者:Nicolas Broeking和Joshua Rahm 介绍 从功能上来说,编程是很...####第2章:Haskell简介 ####第3章:类型系统 ####第4章:进阶 ####结论 [下一页](./ presentation / FunctionalProgramming.md)
这个包是用 Haskell 编写的“A Categorical Programing Language”(简称 CPL)[1][2] 的实现。 CPL 是一种基于范畴论的函数式编程语言。 数据类型由附加项以分类方式声明。 可以处理的数据类型包括终端对象、初始...
对于泛型程序设计来说,类型的参数化多态是其理论框架,参数化多态引入了类型变量,使得类型参数化,支持类型上的抽象,从而可以大大提高软件的复用程度。泛型编程思想已经在多种语言中得到运用,并已取得了不小的...
C | C计算机程序设计语言 CBL | COBOL计算机编程语言 CMD | 命令行 CPP | C ++程式语言 CS | C#编程语言 CXX | CXX(C ++)编程语言 DART | Dart程式语言 DGN | 龙编程语言 ERL | Earlang编程语言 F | F数值编程...
Munje 编程语言这是在大力发展。 但是,可以在上找到规范
世界上有很多有趣的编程语言,但下载它们、安装编程环境可能会是一件非常耗时的事情, 而你很可能只想试一下。...Pete Sestoft的《程序设计语言概念》对这个主题提供了很好的 介绍。 十分钟学习十种语言
使用的语言是“ Haskell”,就像原型设计方案一样。 版本0.0.13.8 采用的版本控制将是这样的: 如何设置? 设置摘要: 我们将使用“ ghc / ghci”编译器或“ Glascow Haskell编译器”。 因此,建议下载“ Haskell...
从程序反射的角度分析元编程系统对程序设计语言在自我表示、自我分析和控制等方面的要求。以MetaML和Template Haskell为例论述在函数式语言中为了支持元编程需要扩展的机制,包括语法、语义、类型系统、安全的变量...
Python是一种代表简单主义思想的语言。...有两个标准库(functools,itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。 Python练习集100题是整理了Python入门学习需要的练习题。
有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发项目例如Zope、Mnet...
功能程序设计课程 由Tony Morris和Mark Hibberd为Data61(以前称为NICTA)撰写 来自个人的贡献(谢谢!) 特别说明1 如果您是通过到达这里的,并且正在寻找答案(而非练习),请访问 特别说明2 自2017年2月起,此...
python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支 持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算 ...Haskell和Standard ML中久经考验的函数式程序设计工具
提出通过测试来证明安全协议的方法。以NS和NSL协议为例,首先将协议形式化为事件序列,协议的性质可以表示为序列上的性质。协议的完整运行可以系统地生成,因此,协议...形式化和测试在函数程序设计语言Haskell中完成。
Unpythonic:Python遇到Lisp和Haskell 本着的精神,我们提供了Python缺少的功能,主要是从列表处理传统中来的,但其中混入了一些Haskellism。我们用一组扩展该语言。 我们还提供了一个正在进行中的后台服务器,用于...