图书介绍
Haskell趣学指南PDF|Epub|txt|kindle电子书版本网盘下载
![Haskell趣学指南](https://www.shukui.net/cover/5/35035664.jpg)
- (斯洛文)利波瓦卡著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115335593
- 出版时间:2014
- 标注页数:301页
- 文件大小:67MB
- 文件页数:315页
- 主题词:函数-程序设计-指南
PDF下载
下载说明
Haskell趣学指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 各就各位,预备!1
1.1调用函数3
1.2小朋友的第一个函数4
1.3列表入门6
1.3.1拼接列表6
1.3.2访问列表中的元素8
1.3.3嵌套列表8
1.3.4比较列表8
1.3.5更多列表操作9
1.4得州区间11
1.5我是列表推导式13
1.6元组16
1.6.1使用元组16
1.6.2使用序对17
1.6.3找直角三角形18
第2章 相信类型20
2.1显式类型声明20
2.2 Haskell的常见类型21
2.3类型变量22
2.4类型类入门23
2.4.1 Eq类型类24
2.4.2 Ord类型类24
2.4.3 Show类型类25
2.4.4 Read类型类25
2.4.5 Enum类型类27
2.4.6 Bounded类型类27
2.4.7 Num类型类28
2.4.8 Floating类型类28
2.4.9Integeral类型类28
2.4.10有关类型类的最后总结29
第3章 函数的语法30
3.1模式匹配30
3.1.1元组的模式匹配32
3.1.2列表与列表推导式的模式匹配32
3.1.3 As模式34
3.2注意,哨卫!34
3.3 where?!36
3.3.1 where的作用域37
3.3.2 where中的模式匹配38
3.3.3 where块中的函数38
3.4 let39
3.4.1列表推导式中的let40
3.4.2 GHCi中的let40
3.5 case表达式41
第4章 你好,递归43
4.1不可思议的最大值43
4.2更多的几个递归函数45
4.2.1 replicate45
4.2.2 take45
4.2.3 reverse46
4.2.4 repeat46
4.2.5 z ip46
4.2.6 elem47
4.3快点,排序!47
4.3.1算法思路47
4.3.2编写代码48
4.4递归地思考49
第5章 高阶函数50
5.1柯里函数50
5.1.1截断52
5.1.2打印函数53
5.2再来点儿高阶函数53
5.2.1实现z ipw i th54
5.2.2实现flip55
5.3函数式程序员工具箱56
5.3.1 map函数56
5.3.2 f i lter函数57
5.3.3有关map与filter的更多示例58
5.3.4映射带有多个参数的函数60
5.4 lambda60
5.5折叠纸鹤62
5.5.1通过foldl进行左折叠63
5.5.2通过foldr进行右折叠63
5.5.3 foldll函数与foldrl函数64
5.5.4折叠的几个例子65
5.5.5另一个角度看折叠66
5.5.6无限列表的折叠67
5.5.7扫描68
5.6有?的函数应用68
5.7函数组合70
5.7.1带有多个参数函数的组合70
5.7.2 Point-Free风格71
第6章 模块73
6.1导入模块73
6.2使用模块中的函数求解问题75
6.2.1统计单词数75
6.2.2干草堆中的缝纫针76
6.2.3凯撒密码沙拉77
6.2.4严格左折叠79
6.2.5寻找酷数80
6.3映射键与值82
6.3.1几乎一样好:关联列表82
6.3.2进入Data .Map83
6.4构造自己的模块87
6.4.1几何模块87
6.4.2模块的层次结构89
第7章 构造我们自己的类型和类型类91
7.1定义新的数据类型91
7.2成型92
7.2.1借助Point数据类型优化Shape数据类型93
7.2.2将图形导出到模块中94
7.3记录语法95
7.4类型参数97
7.4.1要不要参数化我们的汽车?99
7.4.2末日向量100
7.5派生实例102
7.5.1相同的人102
7.5.2告诉我怎么读103
7.5.3法庭内保持秩序!104
7.5.4一周的一天105
7.6类型别名106
7.6.1使我们的电话本更好看些107
7.6.2参数化类型别名108
7.6.3向左走,向右走109
7.7递归数据结构111
7.7.1优化我们的列表111
7.7.2种一棵树113
7.8类型类115
7.8.1深入Eq类型类116
7.8.2 TrafficLight数据类型116
7.8.3子类化118
7.8.4作为类型类实例的带参数类型118
7.9 Yes-No类型类120
7.10 Functor类型类122
7.10.1 Maybe函子124
7.10.2树也是函子124
7.10.3 Either a函子125
7.11kind与无名类型126
第8章 输入与输出128
8.1纯粹与非纯粹的分离128
8.2 Hello, World!129
8.3组合I/O操作130
8.3.1在I/O操作中使用let132
8.3.2反过来133
8.4几个实用的I/O函数135
8.4.1 putStr135
8.4.2 putChar135
8.4.3 print136
8.4.4 when137
8.4.5 sequence137
8.4.6 mapM138
8.4.7 forever139
8.4.8 forM139
8.5 I/O操作回顾140
第9章 更多的输入输出操作141
9.1文件和流141
9.1.1输入重定向141
9.1.2从输入流获取字符串142
9.1.3转换输入144
9.2读写文件146
9.2.1使用withFile函数147
9.2.2 bracket的时间到了148
9.2.3抓住句柄149
9.3 TODO列表149
9.3.1删除条目150
9.3.2清理152
9.4命令行参数153
9.5关于TODO列表的更多有趣的事154
9.5.1一个多任务列表155
9.5.2处理错误的输入158
9.6随机性159
9.6.1掷硬币160
9.6.2更多随机函数161
9.6.3随机性和I/O162
9.7字节串165
9.7.1严格的和惰性字节串166
9.7.2用字节串复制文件167
第10章 函数式地解决问题169
10.1逆波兰式计算器169
10.1.1计算RPN表达式169
10.1.2写一个RPN函数170
10.1.3添加更多的操作符172
10.2从希思罗机场到伦敦173
10.2.1计算最快的路线174
10.2.2在Haskell中表示道路系统176
10.2.3实现计算最佳路径的函数177
10.2.4从输入获取道路系统179
第11章applicative函子182
11.1函子再现182
11.1.1作为函子的I/O操作183
11.1.2作为函子的函数185
11.2函子定律187
11.2.1定律1188
11.2.2定律2188
11.2.3违反定律189
11.3使用applicative函子191
11.3.1向applicative问好192
11.3.2 Maybe applicative函子192
11.3.3 applicative风格193
11.3.4列表195
11.3.5IO也是applicative函子197
11.3.6函数作为applicative198
11.3.7 zip列表199
11.3.8 applicative定律200
11.4 applicative的实用函数201
第12章 Monoid205
12.1把现有类型包裹成新类型205
12.1.1用newtype创建类型类的实例207
12.1.2关于newtype的惰性208
12.1.3 type、 newtype和data三者的对比210
12.2关于那些monoid211
12.2.1 Monoid类型类212
12.2.2 monoid定律213
12.3认识一些monoid213
12.3.1列表是monoid213
12.3.2 Product和Sum214
12.3.3 Any和All216
12.3.4 Ordering monoid217
12.3.5 Maybe monoid219
12.4 monoid的折叠221
第13章 更多monad的例子224
13.1升级我们的applicative函子224
13.2体会Maybe225
13.3 Monad类型类228
13.4一往无前229
13.4.1代码,代码,代码230
13.4.2我要飞走231
13.4.3线上的香蕉234
13.5 do记法235
13.5.1按我所说的去做236
13.5.2我皮埃尔又回来了237
13.5.3模式匹配和计算失败238
13.6列表monad239
13.6.1 do记法和列表推导式241
13.6.2 MonadPlus和guard函数242
13.6.3马的探索243
13.7 monad定律245
13.7.1左单位元246
13.7.2右单位元246
13.7.3结合律247
第14章 再多一些monad249
14.1 Writer?我没听说过啊!249
14.1.1 monad赶来营救251
14.1.2 Writer类型253
14.1.3对Writer使用do记法254
14.1.4给程序添加日志255
14.1.5低效的列表构造257
14.1.6使用差分列表258
14.1.7比较性能259
14.2 Reader?呃,不开玩笑了260
14.2.1作为monad的函数261
14.2.2 Reader monad261
14.3带状态计算的优雅表示262
14.3.1带状态的计算263
14.3.2栈和石头264
14.3.3 State monad265
14.3.4获取和设置状态267
14.3.5随机性和State monad268
14.4墙上的Error269
14.5一些实用的monad式的函数271
14.5.1 liftM和它的朋友们271
14.5.2 j oin函数274
14.5.3 filterM276
14.5.4 foldM278
14.6创建一个安全的RPN计算器279
14.7组合monad式的函数281
14.8创建monad282
第15章 zipper287
15.1在树上移动287
15.1.1面包屑290
15.1.2向上走291
15.1.3处理焦点处的树293
15.1.4一路走到顶端,那里的空气既新鲜又干净294
15.2在列表上定位294
15.3一个非常简单的文件系统295
15.3.1为文件系统创建一个zipper296
15.3.2操作文件系统298
15.4小心行事299
15.5谢谢阅读!301