随笔分类 - 5. Haskell函数式编程
Haskell/LISP...
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。在这个站点有PDF文件。几年前刚开始学习Haskell的时候,感觉前几章还可以看下去,后面的内容越来越难以理解。现在对函数式编程有了一些了解后,再来看这些题,许多内容变得简单起来了。
这个学习材料内容太多,想把整书全面翻译下来非常困难,只有通过练习题将一些知识点串起来,从2012年底开始做这本书的习题,终于在2013年9月完成,Haskell果然很难,有些习题也没有弄明白,这是全部习题答案的索引。
阅读全文
摘要:这是《Two Dozen Short Lessons in Haskell》这本书的最后一章,第23章没有习题。这一章里介绍了Haskell如果自定义一种类型,并且用一个双人博弈游戏为例子讲解了如何使用这些类型,里面简单介绍了Minimax算法。至此,这本书全部学完,当然还没用Haskell写过什么大一点的程序,只是掌握了其基本概念。
阅读全文
摘要:
阅读全文
摘要:第21章 在形式参数中使用模式匹配
阅读全文
摘要:第20章 分数
阅读全文
摘要:第19章 交互编程文件输入输出
阅读全文
摘要:第18章 Interactive Keyboard Input and Screen OutputIO类型在初学Haskell的时候是一个很难理解的概念,平常的编程语言中已经习惯了输入、输出语句,但在函数式编程中一切皆函数,一个确定的函数会得到确定的计算结果,而与操作系统交互时函数式编程就不太方便了,这时Haskell引出了一个IO类型。
阅读全文
摘要:第17章 模块库
阅读全文
摘要:第16章 带条件分支的函数定义
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第十五章 封装--模块
阅读全文
摘要:无意中在博客园里发现这个卡普雷尔卡黑洞题目,正好适合用haskell练手,就试着用Haskell实现了。原题描述:把一个四位数的四个数字由小至大排列,组成一个新数,又由大至小排列排列组成一个新数,这两个数相减,之后重复这个步骤,只要四位数的四个数字不重复,数字最终便会变成 6174。例如:3109,9171 (=9310 - 0139),8532 (=9711 - 1179),6174 (=8532 - 2358),6174 ......import Data.Charimport Data.ListnextInt 0 = 6174 -- 当4个数字相同时,会得到0的结果,会使程序出现一个无.
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第十四章 截断序列和惰性求值
阅读全文
摘要:第十三章 Iteration and the Common Patterns of Repetition
这一章开始接触通常编程语言中不可想象的无限数据结构,利用iterate函数可以产生一个无限元素的列表。
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第十二章 数值相关的类
阅读全文
摘要:第十一章 元组
元组必须有2个以上的元素
每个元素的类型可以不相同
元素之间用逗号分隔
元组里的元素放在一对括号中
元组的类型看上去也像一个元组,只不过它的元素是类型名。如(23, ‘x’)的类型是(Integer, Char)
利用元组,可以同时定义多个变量,如:(xSansLastDigit, d0) = x ‘divMod‘ 10
阅读全文
摘要:第十章 私有定义----where从句Haskell中的许多名字也称为变量,像是数学方程中的变量variable一样。但与过程式编程完全不同,在函数式编程里这个量,当它定义了之后,实际并不改变。
where从句把数学中的局部定义的概念直接用在编程语言中了。
在SQL查询语句中where只是一个条件表达式,与haskell是不一样的。
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第九章 柯里函数和高阶函数
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第八章 Function Types, Classes, and Polymorphism
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第7章 Types
阅读全文
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第六章 Patterns of Computation — Composition, Folding, and Mapping
阅读全文