<p>《Haskell函数式编程基础(原书第3版)》可作为计算机科学和其他相关学科的高年级本科生、研究生的教材,也可供对函数式程序设计感兴趣的程序员、软件工程师等参考学习。</p>
Haskell函数式编程入门
✍ Scribed by 张淞
- Publisher
- 人民邮电出版社
- Year
- 2014
- Tongue
- Chinese
- Leaves
- 371
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
书签已装载,
书签制作方法请找 [email protected]
完全免费
《haskell函数式编程入门》是一本讲解haskell这门经过精心设计和锤炼的纯函数式编程语言的书,同时也是一本通过haskell来讲解函数式编程的方法与思想的书。全书共分三个部分。第一部分介绍函数式编程在解决数学与算法问题的精简与直观的特色,让不熟悉haskell的读者对其建立初步的了解,同时通过解决一些算法问题,如裴波那契数列、八皇后问题、排序问题、24点等,引发一些对函数式编程方式的思考;第二部分介绍一些略微深入的haskell内容,包括函子、monoid、io与monad转换器等;最后一部分则涉及快速测试、惰性求值和并行编程等主题。
《haskell函数式编程入门》既适合对hasell和函数式编程感兴趣的程序员阅读,又适合作为haskell语言入门教程,供计算机科学与数学专业的学生参考。
✦ Table of Contents
封面
书名
版权
前言
目录
第1章Haskell简介
1.1 Haskell的由来
1.2 Haskell编译器的安装以及编写环境
1.3 GHCi的使用
1.3.1 GHCi中的命令
1.3.2在GHCi中调用函数
1.4 .hs和.lhs文件、注释与库函数
1.5第一个Haskell程序HelloWorld!
本章小结
第2章 类型系统和函数
2.1 Haskell的类型与数据
2.1.1 Haskell常用数据类型
2.1.2函数类型
2.1.3类型的别名
2.1.4类型的重要性
2.2 Haskell中的类型类
2.2.1相等类型类.Eq
2.2.2有序类型类.Ord
2.2.3枚举类型类.Emum
2.2.4有界类型类.Bounded
2.2.5数字类型类.Num
2.2.6可显示类型类.Show
2.2.7小结
2.3 Haskell中的函数
2.3.1 Haskell中的值
2.3.2函数思想入门
2.3.3函数的基本定义格式
2.3.4 λ表达式
2.3.5参数的绑定
2.4 Haskell中的表达式
2.4.1条件表达式
2.4.2情况分析表达式
2.4.3守卫表达式
2.4.4模式匹配
2.4.5运算符与函数
2.4.6运算符与自定义运算符
本章小结
第3章 基于布尔值的函数
3.1关键字module与import简介
3.2简易布尔值的函数
3.3与非门和或非门
本章小结
第4章 库函数及其应用
4.1预加载库函数
4.1.1常用函数
4.1.2基于列表的函数
4.1.3定义历法公式
4.1.4字符串处理的函数
4.2字符与位函数库简介
4.2.1 Data.Char
4.2.2 Data.Bits
本章小结
第5章 递归函数
5.1递归函数的概念
5.2简单递归函数
5.3扩展递归与尾递归
5.4互调递归
5.5麦卡锡的91函数
5.6斐波那契数列
5.7十进制数字转成罗马数字
5.8二分法查找
5.9汉诺塔
5.10排序算法
5.10.1插入排序
5.10.2冒泡排序
5.10.3选择排序
5.10.4快速排序
5.10.5归并排序
小结
5.11递归基本条件与程序终止
5.12递归与不动点
5.13无基本条件递归和惰性求值
本章小结
第6章 列表内包
6.1列表生成器
6.2素数相关趣题
6.3凯撒加密
6.3.1加密
6.3.2解密
6.4排列与组合问题
6.4.1排列问题
6.4.2错位排列问题
6.4.3组合问题
6.5八皇后问题
6.6计算矩阵乘法
6.7最短路径算法与矩阵乘法
本章小结
第7章 高阶函数与复合函数
7.1简单高阶函数
7.2折叠函数foldr与foldr
7.3 mapAccum?与mapAccumR函数
7.4复合函数
本章小结
第8章 定义数据类型
8.1数据类型的定义
8.1.1枚举类型
8.1.2构造类型
8.1.3参数化类型
8.1.4递归类型
8.1.5杂合定义类型
8.2类型的同构
8.3使用newtype定义类型
8.4数学归纳法的有效性
8.5树
8.6卡特兰数问题
8.7霍夫曼编码
8.8解24点
8.9 zipper
8.10一般化的代数数据类型
8.11类型的kind
8.11.1类型的kind
8.11.2空类型的声明
本章小结
第9章 定义类型类
9.1定义类型类
9.2 Haskell中常见类型类
9.2.1常用类型类
9.2.2 Functor
9.2.3 App工icative
9.2.4 Alternative
9.2.5简易字符识别器
9.2.6 Read类型类
9.2.7单位半群(Monoid )
9.2.8 Foldable与Monoid类型类
9.2.9小结
9.3类型类中的类型依赖
9.4类型类中的关联类型
9.5定长列表
9.6运行时重载
9.7 Existential类型
本章小结
第10章Monad初步
10.1 Monad简介
10.2从工dentity Monad开始
10.3 Maybe Monad
10.4 Monad定律
10.5列表Monad
10.6 Monad相关运算符
10.7 MonadPlus
10.8 Functor、 Applicative与Monad的关系
本章小结
第11章 系统编程及输入/输出
11.1不纯函数与副作用
11.2工O Monad
11.3输入/输出处理
11.3.1 Control.Monad中的函数
11.3.2系统环境变量与命令行参数
11.3.3数据的读写
11.3.4格式化输出printf函数
11.3.5 printf函数的简易实现
11.4星际译王词典
11.4.1二分法查找
11.4.2散列表的使用
11.5简易异常处理
11.6 Haskell中的时间
本章小结
第12章 记录器Monad、读取器Monad、状态Monad
12.1记录器Monad
12.1.1 MonadWriter
12.1.2记录归并排序过程
12.2读取器Monad
12.2.1 MonadReader
12.2.2变量环境的引用
12.3状态Monad
12.3.1状态Monad标签器
12.3.2用状态Monad实现栈结构
12.3.3状态Monad、 FunApp单位半群和读取器Monad的关系
12 3.4 MonadState
12.3.5基于栈的计算器
12.4随机数的生成
本章小结
第13章Monad转换器
13.1从工dentityT Monad转换器开始
13.2 Monad转换器组合与复合 Monad的区别
13.3 Monad转换器的组合顺序
13.4 lift与lift工O
13.5简易Monad编译器
13.6语法分析器Monad组合子
13.6.1简易语法分析器的实现
13.6.2 Parsec库简介
13.6.3上下文无关文法
13.6.4基于语法分析器的计算器
本章小结
第14章QuickCheck简介
14.1测试函数属性
14.2测试数据生成器
本章小结
第15章 惰性求值简介
15.1 λ演算简介
15.2⊥Bottom
15.3表达式形态和thunk
15.3.1 WHNF.HNF与NF
15.3.2 thunk与严格求值
15.4求值策略
15.4.1引值调用
15.4.2按名调用
15.4.3常序求值
15.5惰性求值
15.6严格模式匹配与惰性模式匹配
第16章 并行与并发编程
16.1确定性的并行计算
16.2轻量级线程
16.2.1调度的不确定性
16.2.2基本线程通信
16.2.3信道
16.2.4简易聊天服务器
16.3软件事务内存
16.3.1软件事务内存简介
16.3.2软件事务内存的使用
16.3.3哲学家就餐问题
16.3.4圣诞老人问题
16.4异步并发库简介
本章小结
参考文献
后记
📜 SIMILAR VOLUMES
书签已装载, 书签制作方法请找 [email protected] 完全免费 《Haskell函数式编程基础(原书第3版)》可作为计算机科学和其他相关学科的高年级本科生、研究生的教材,也可供对函数式程序设计感兴趣的程序员、软件工程师等参考学习。
书签已装载, 书签制作方法请找 [email protected] 完全免费 支持千人!
书签已装载, 书签制作方法请找 [email protected] 完全免费 支持千人!
函数式编程具有代码简洁、开发速度快、易理解、易维护、扩展性强的特点,在某些领域可以解决让命令式编程头痛的问题,具有广泛的应用场景和良好的发展前景。本书是函数式编程的零基础教程,以Elixir为例讲解函数式编程与命令式编程的区别,帮助读者掌握函数式编程的基本概念和思想(如不可变值、显式数据转换、模式匹配、递归函数、高阶函数、多态等),并避免新手常犯的错误。本书尤其适合对Elixir感兴趣且无函数式编程基础的读者入门学习。
<p>《JavaScript ES6函数式编程入门经典》使用JavaScript ES6带你学习函数式</p> <p>编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。</p> <p>目前,编程语言已经将焦点从对象转移到函数。JavaScript支持函数式编</p> <p>程,并允许开发者编写精心设计的代码。</p> <p>主要内容</p> <p>● 掌握函数式编程的概念</p> <p>● 清楚函数在JavaScript中的地位</p> <p>● 理解真实的函数式类库,并创建一个模拟underscore.js的函数式类库</p> <p>● 实践纯错误处理技术,例如函子