haskell是一种现代的、标准的、非严格的、纯功能的编程语言。它提供了上面勾勒出的所有功能,包括多态类型、惰性评估和高阶函数。它还具有一种创新的类型系统,支持系统化的过载和模块系统。它专门设计用于处理从数值到符号的广泛应用。为此,haskell具有富有表现力的语法和丰富的内置数据类型,包括任意精度整数和理性,
以及更传统的整数、浮点和布尔类型。有很多编译器和解释器可用。全部免费。在计算机上安装haskell的推荐方式是通过haskell平台。
编写工作的大型软件系统是困难和昂贵的。维护这些系统更加困难和昂贵。函数式编程语言(如haskell)可以使它更容易、更便宜。
例如:在haskell中撰写小型关系DBMS的新用户这样说
哇!我基本上写这个没有测试,只是考虑我的程序在类型之间转换。我编写了测试/示例代码,代码中几乎没有实现错误!
编译器/类型系统非常善于防止您犯编码错误!
即使你无法在编程项目中使用haskell,学习haskell也可以使你在任何语言中成为一个更好的程序员。
haskell适用于各种应用。它特别适用于需要高度可修改和维护的程序。
软件产品的很多寿命都花在规格、设计和维护上,而不是花在编程上。
函数语言是极好的编写规范,可以实际执行(因此测试和调试)。这样一个规范就是最终程序的第一个原型。功能程序也相对容易维护,因为代码更短、更清晰,而且严格控制副作用消除了大量不可预见的交互。
1.大幅提高程序员的工作效率。
2.更短、更清晰、更可维护的代码。
3.错误更少,可靠性更高。
4.程序员和语言之间的“语义差距”较小。
5.缩短交货时间。
电子表格和SQL都是相当专业的语言。函数式编程语言采取相同的想法,并将它们移动到通用编程领域。要了解函数语言的表现力,请看一下快速排序程序。它们都使用称为“快速排序”的标准方法将一系列数字按升序排序。
C程序和Haskell程序不同之处?
C程序描述了计算机执行排序必须执行的特定步骤(大多数代码处理数据操作的低级细节),Haskell程序对排序算法进行更高级别的编码,结果提高了简洁性和清晰度。
关于Haskell语法,首先要了解的是括号用于分组,而不是函数应用程序。函数f对参数x的应用是写入f x的。不一定是f(x)。它可以写成f(x)来将其与周围环境分开。
quicksort::Ord a=>[a]->[a]
quicksort[] == []
quicksort(p:xs)=(quicksort lesser)++[p]++(quicksort greater)
where
lesser = filter(<p)xs
greater = filter(>=p)xs
括号表示方程右侧操作数的分组。在左侧,它们指示函数参数的模式。
括号围绕两个函数调用,没有必要-因为函数应用程序绑定比infix运算符更紧密-并且只是为了清楚起见。
(quicksort lesser) | (quicksort greater)
学习haskell最简单的方法就是用课本。有很多在线教程,但你将更容易从一本书中学习基础知识。毕竟,haskell与传统主流语言非常不同,就像重新学习编程一样。
参考地址:https://wiki.haskell.org/Introduction#How_can_I_learn_Haskell.3F