Haskell函数式编程入门

Haskell函数式编程入门

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书既适合对Hasell和函数式编程感兴趣的程序员阅读,又适合作为Haskell语言入门教程,供计算机科学与数学专业的学生参考。

内容简介

本书是一本讲解Haskell这门经过精心设计和锤炼的纯函数式编程语言的书,同时也是一本通过Haskell来讲解函数式编程的方法与思想的书。全书共分三个部分。第一部分介绍函数式编程在解决数学与算法问题的精简与直观的特色,让不熟悉Haskell的读者对其建立初步的了解,同时通过解决一些算法问题,如裴波那契数列、八皇后问题、排序问题、24点等,引发一些对函数式编程方式的思考;第二部分介绍一些略微深入的Haskell内容,包括函子、Monoid、IO与Monad转换器等;最后一部分则涉及快速测试、惰性求值和并行编程等主题。

作者简介

作者张淞,酷爱数学、物理,进入大学后开始喜欢学习与研究各类编程语言,并成为了一名 Haskell 爱好者。2012 年 7 月于英国诺丁汉大学获得计算机科学本科学位。2013 年 11 月于英国牛津大学获得计算机科学硕士学位。目前喜欢学习与研究 λ 演算、 类型系统、抽象代数、范畴论、逻辑证明、组合数学等内容。

章节目录

版权信息

其他

前言

致谢

第1章 Haskell简介

1.1 Haskell的由来

1.2 Haskell编译器的安装以及编写环境

1.3 GHCi的使用

1.4 .hs和.lhs文件、注释与库函数

1.5 第一个Haskell程序HelloWorld!

第2章 类型系统和函数

2.1 Haskell的类型与数据

2.2 Haskell中的类型类

2.3 Haskell中的函数

2.4 Haskell中的表达式

第3章 基于布尔值的函数

3.1 关键字module与import简介

3.2 简易布尔值的函数

3.3 与非门和或非门

第4章 库函数及其应用

4.1 预加载库函数

4.2 字符与位函数库简介

第5章 递归函数

5.1 递归函数的概念

5.2 简单递归函数

5.3 扩展递归与尾递归

5.4 互调递归

5.5 麦卡锡的91函数

5.6 斐波那契数列

5.7 十进制数字转成罗马数字

5.8 二分法查找

5.9 汉诺塔

5.10 排序算法

5.11 递归基本条件与程序终止

5.12 递归与不动点

5.13 无基本条件递归和惰性求值

第6章 列表内包

6.1 列表生成器

6.2 素数相关趣题

6.3 凯撒加密

6.4 排列与组合问题

6.5 八皇后问题

6.6 计算矩阵乘法

6.7 最短路径算法与矩阵乘法

第7章 高阶函数与复合函数

7.1 简单高阶函数

7.2 折叠函数foldr与foldl

7.3 mapAccumL与mapAccumR函数

7.4 复合函数

第8章 定义数据类型

8.1 数据类型的定义

8.2 类型的同构

8.3 使用newtype定义类型

8.4 数学归纳法的有效性

8.5 树

8.6 卡特兰数问题

8.7 霍夫曼编码

8.8 解24点

8.9 Zipper

8.10 一般化的代数数据类型

8.11 类型的kind

第9章 定义类型类

9.1 定义类型类

9.2 Haskell中常见类型类

9.3 类型类中的类型依赖

9.4 类型类中的关联类型

9.5 定长列表

9.6 运行时重载

9.7 Existential类型

第10章 Monad初步

10.1 Monad简介

10.2 从Identity Monad开始

10.3 MaybeMonad

10.4 Monad定律

10.5 列表Monad

10.6 Monad相关运算符

10.7 MonadPlus

10.8 Functor、Applicative与Monad的关系

第11章 系统编程及输入/输出

11.1 不纯函数与副作用

11.2 IO Monad

11.3 输入/输出处理

11.4 星际译王词典

11.5 简易异常处理

11.6 Haskell中的时间

第12章 记录器Monad、读取器Monad、状态Monad

12.1 记录器Monad

12.2 读取器Monad

12.3 状态Monad

12.4 随机数的生成

第13章 Monad转换器

13.1 从IdentityT Monad转换器开始

13.2 Monad转换器组合与复合Monad的区别

13.3 Monad转换器的组合顺序

13.4 lift与liftIO

13.5 简易Monad编译器

13.6 语法分析器Monad组合子

第14章 QuickCheck简介

14.1 测试函数属性

14.2 测试数据生成器

第15章 惰性求值简介

15.1 λ演算简介

15.2 ⊥Bottom

15.3 表达式形态和thunk

15.4 求值策略

15.5 惰性求值

15.6 严格模式匹配与惰性模式匹配

第16章 并行与并发编程

16.1 确定性的并行计算

16.2 轻量级线程

16.3 软件事务内存

16.4 异步并发库简介

参考文献

后记

Haskell函数式编程入门是2014年由人民邮电出版社出版,作者张淞。

得书感谢您对《Haskell函数式编程入门》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
C编程从入门到实践 电子书
更适合95后的C语言编程入门书。
Python编程入门与算法进阶 电子书
Python简单易学,是一种非常适合零基础编程人员学习算法与编程的高级程序设计语言。本书是中国电子学会全国青少年软件编程等级考试Python编程一至四级的指定用书,基于Python自带的集成开发工具IDLE3.5.2版本,对应每级考试要求讲解知识要点。对于广大青少年学习者,本书能够指导他们了解并掌握Python语言编程技巧,培养他们用Python语言编程解决生活中实际问题的能力。
Scratch编程入门与算法进阶 电子书
Scratch是国际流行的图形化编程软件,使用者即使没有编程基础、不会编程语言,只要有清晰的思路,也可以通过拖曳各个功能模块的方式,配合硬件制作出智能互动项目,轻松把创意变成现实。本书手把手教你Scratch的基本用法和多个有趣小游戏的制作过程,让你逐步学会智能互动知识。
Scratch3.0创意编程入门 电子书
编程教育的本质是一种思维训练,其中最为关键的是培养学生的计算思维。计算思维是运用计算机科学的基础概念进行问题求解、系统设计及理解人类行为的思维方式。Scratch以一种可视化、形象化、模块化的编程方式重新定义了程序设计,极大地降低了编程学习的门槛,让小学生学习编程成为可能。本书作者胡畔博士是佛山科学技术学院创客与STEAM教育中心主任,长期致力于青少年创客教育与STEAM教育研究及中小学创客教师培
Java编程从入门到精通 电子书
本书共14章,主要内容包括Java概述,基本类型与运算符,程序流程控制,数组,类与对象,抽象类、接口与嵌套类,GUI编程,Swing高级组件,异常与处理,I/O流与文件,多线程与并发,容器框架与泛型,字符串与正则表达式,反射与注解。