随笔分类 -  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果然很难,有些习题也没有弄明白,这是全部习题答案的索引。 阅读全文
posted @ 2013-09-05 10:01 申龙斌的程序人生 阅读(1180) 评论(0) 推荐(0) 编辑
摘要:这是《Two Dozen Short Lessons in Haskell》这本书的最后一章,第23章没有习题。这一章里介绍了Haskell如果自定义一种类型,并且用一个双人博弈游戏为例子讲解了如何使用这些类型,里面简单介绍了Minimax算法。至此,这本书全部学完,当然还没用Haskell写过什么大一点的程序,只是掌握了其基本概念。 阅读全文
posted @ 2013-09-05 09:33 申龙斌的程序人生 阅读(837) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-06-18 22:31 申龙斌的程序人生 阅读(774) 评论(0) 推荐(0) 编辑
摘要:第21章 在形式参数中使用模式匹配 阅读全文
posted @ 2013-05-27 18:07 申龙斌的程序人生 阅读(881) 评论(0) 推荐(0) 编辑
摘要:第20章 分数 阅读全文
posted @ 2013-05-01 10:08 申龙斌的程序人生 阅读(721) 评论(0) 推荐(0) 编辑
摘要:第19章 交互编程文件输入输出 阅读全文
posted @ 2013-04-11 08:09 申龙斌的程序人生 阅读(744) 评论(0) 推荐(0) 编辑
摘要:第18章 Interactive Keyboard Input and Screen OutputIO类型在初学Haskell的时候是一个很难理解的概念,平常的编程语言中已经习惯了输入、输出语句,但在函数式编程中一切皆函数,一个确定的函数会得到确定的计算结果,而与操作系统交互时函数式编程就不太方便了,这时Haskell引出了一个IO类型。 阅读全文
posted @ 2013-03-23 09:29 申龙斌的程序人生 阅读(889) 评论(0) 推荐(0) 编辑
摘要:第17章 模块库 阅读全文
posted @ 2013-03-15 06:56 申龙斌的程序人生 阅读(766) 评论(0) 推荐(0) 编辑
摘要:第16章 带条件分支的函数定义 阅读全文
posted @ 2013-03-05 06:51 申龙斌的程序人生 阅读(825) 评论(0) 推荐(0) 编辑
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第十五章 封装--模块 阅读全文
posted @ 2013-02-23 10:32 申龙斌的程序人生 阅读(632) 评论(0) 推荐(0) 编辑
摘要:无意中在博客园里发现这个卡普雷尔卡黑洞题目,正好适合用haskell练手,就试着用Haskell实现了。原题描述:把一个四位数的四个数字由小至大排列,组成一个新数,又由大至小排列排列组成一个新数,这两个数相减,之后重复这个步骤,只要四位数的四个数字不重复,数字最终便会变成 6174。例如:3109,9171 (=9310 - 0139),8532 (=9711 - 1179),6174 (=8532 - 2358),6174 ......import Data.Charimport Data.ListnextInt 0 = 6174 -- 当4个数字相同时,会得到0的结果,会使程序出现一个无. 阅读全文
posted @ 2013-02-06 22:57 申龙斌的程序人生 阅读(1523) 评论(2) 推荐(0) 编辑
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第十四章 截断序列和惰性求值 阅读全文
posted @ 2013-01-29 22:49 申龙斌的程序人生 阅读(1065) 评论(0) 推荐(0) 编辑
摘要:第十三章 Iteration and the Common Patterns of Repetition 这一章开始接触通常编程语言中不可想象的无限数据结构,利用iterate函数可以产生一个无限元素的列表。 阅读全文
posted @ 2013-01-04 22:08 申龙斌的程序人生 阅读(860) 评论(0) 推荐(0) 编辑
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第十二章 数值相关的类 阅读全文
posted @ 2012-12-28 08:42 申龙斌的程序人生 阅读(768) 评论(0) 推荐(0) 编辑
摘要:第十一章 元组 元组必须有2个以上的元素 每个元素的类型可以不相同 元素之间用逗号分隔 元组里的元素放在一对括号中 元组的类型看上去也像一个元组,只不过它的元素是类型名。如(23, ‘x’)的类型是(Integer, Char) 利用元组,可以同时定义多个变量,如:(xSansLastDigit, d0) = x ‘divMod‘ 10 阅读全文
posted @ 2012-12-13 20:55 申龙斌的程序人生 阅读(1327) 评论(0) 推荐(0) 编辑
摘要:第十章 私有定义----where从句Haskell中的许多名字也称为变量,像是数学方程中的变量variable一样。但与过程式编程完全不同,在函数式编程里这个量,当它定义了之后,实际并不改变。 where从句把数学中的局部定义的概念直接用在编程语言中了。 在SQL查询语句中where只是一个条件表达式,与haskell是不一样的。 阅读全文
posted @ 2012-12-08 17:25 申龙斌的程序人生 阅读(801) 评论(0) 推荐(0) 编辑
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第九章 柯里函数和高阶函数 阅读全文
posted @ 2012-11-27 20:35 申龙斌的程序人生 阅读(1368) 评论(0) 推荐(1) 编辑
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第八章 Function Types, Classes, and Polymorphism 阅读全文
posted @ 2012-11-21 15:59 申龙斌的程序人生 阅读(1165) 评论(0) 推荐(0) 编辑
摘要:《Two Dozen Short Lessons in Haskell》(Copyright © 1995, 1996, 1997 by Rex Page,有人翻译为Haskell二十四学时教程,该书如果不用于赢利,可以任意发布,但需要保留他们的copyright)这本书是学习 Haskell的一套练习册,共有2本,一本是问题,一本是答案,分为24个章节。第7章 Types 阅读全文
posted @ 2012-11-19 20:05 申龙斌的程序人生 阅读(1227) 评论(1) 推荐(0) 编辑
摘要:《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 阅读全文
posted @ 2012-11-15 07:06 申龙斌的程序人生 阅读(517) 评论(0) 推荐(0) 编辑