Haskell入门

一、 什么是haskell?

haskell是一种现代的、标准的、非严格的、纯功能的编程语言。它提供了上面勾勒出的所有功能,包括多态类型、惰性评估和高阶函数。它还具有一种创新的类型系统,支持系统化的过载和模块系统。它专门设计用于处理从数值到符号的广泛应用。为此,haskell具有富有表现力的语法和丰富的内置数据类型,包括任意精度整数和理性,
以及更传统的整数、浮点和布尔类型。有很多编译器和解释器可用。全部免费。在计算机上安装haskell的推荐方式是通过haskell平台。

二、为什么要使用haskell?

编写工作的大型软件系统是困难和昂贵的。维护这些系统更加困难和昂贵。函数式编程语言(如haskell)可以使它更容易、更便宜。

例如:在haskell中撰写小型关系DBMS的新用户这样说
哇!我基本上写这个没有测试,只是考虑我的程序在类型之间转换。我编写了测试/示例代码,代码中几乎没有实现错误!

  编译器/类型系统非常善于防止您犯编码错误!

即使你无法在编程项目中使用haskell,学习haskell也可以使你在任何语言中成为一个更好的程序员。

三、haskell适用场景?

haskell适用于各种应用。它特别适用于需要高度可修改和维护的程序。
软件产品的很多寿命都花在规格、设计和维护上,而不是花在编程上。
函数语言是极好的编写规范,可以实际执行(因此测试和调试)。这样一个规范就是最终程序的第一个原型。功能程序也相对容易维护,因为代码更短、更清晰,而且严格控制副作用消除了大量不可预见的交互。

四、haskell优点?

1.大幅提高程序员的工作效率。
2.更短、更清晰、更可维护的代码。
3.错误更少,可靠性更高。
4.程序员和语言之间的“语义差距”较小。
5.缩短交货时间。

五、函数编程有什么好?

电子表格和SQL都是相当专业的语言。函数式编程语言采取相同的想法,并将它们移动到通用编程领域。要了解函数语言的表现力,请看一下快速排序程序。它们都使用称为“快速排序”的标准方法将一系列数字按升序排序。

C程序和Haskell程序不同之处?
C程序描述了计算机执行排序必须执行的特定步骤(大多数代码处理数据操作的低级细节),Haskell程序对排序算法进行更高级别的编码,结果提高了简洁性和清晰度。

六、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最简单的方法就是用课本。有很多在线教程,但你将更容易从一本书中学习基础知识。毕竟,haskell与传统主流语言非常不同,就像重新学习编程一样。

参考地址:https://wiki.haskell.org/Introduction#How_can_I_learn_Haskell.3F

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值