图书介绍

Haskell趣学指南PDF|Epub|txt|kindle电子书版本网盘下载

Haskell趣学指南
  • (斯洛文)利波瓦卡著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115335593
  • 出版时间:2014
  • 标注页数:301页
  • 文件大小:67MB
  • 文件页数:315页
  • 主题词:函数-程序设计-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐