logo
分类于: 人工智能 云计算&大数据

简介

函数式编程入门: 使用Elixir

函数式编程入门: 使用Elixir 0.0分

资源最后更新于 2020-09-10 15:15:03

作者:[匈] 乌利斯·阿尔梅达 著

译者:杜万

出版社:华中科技大学出版社

出版日期:2020-01

ISBN:9787568061711

文件格式: pdf

标签: 函数式编程 Elixir Programming 计算机 程序设计 模式匹配 递归

简介· · · · · ·

函数式编程具有代码简洁、开发速度快、易理解、易维护、扩展性强的特点,在某些领域可以解决让命令式编程头痛的问题,具有广泛的应用场景和良好的发展前景。本书是函数式编程的零基础教程,以Elixir为例讲解函数式编程与命令式编程的区别,帮助读者掌握函数式编程的基本概念和思想(如不可变值、显式数据转换、模式匹配、递归函数、高阶函数、多态等),并避免新手常犯的错误。本书尤其适合对Elixir感兴趣且无函数式编程基础的读者入门学习。

直接下载

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

前言 1
本书适合你吗 2
这本书里有什么 2
选择Elixir 3
安装Elixir 3
运行代码 3
在线资源 4
第1章 函数思想 5
1.1 为什么需要函数式编程 5
1.1.1 命令式语言的局限性 6
1.1.2 转向函数式编程 6
1.3 使用不可变数据 7
1.4 使用函数构建程序 9
1.4.1 明确地使用值 9
1.4.2 在参数中使用函数 11
1.4.3 值的转换 11
1.5 声明式编程 12
1.6 小结 14
第2章 使用变量和函数 15
2.1 表示值 15
2.2 执行代码并生成结果 17
2.2.1 创建逻辑表达式 19
2.3 变量值绑定 20
2.4 创建匿名函数 22
2.4.1 函数是一等公民 24
2.4.2 在不使用参数的情况下共享值 25
2.5 具名函数 29
2.5.1 Elixir的具名函数 29
2.5.2 创建模块和函数 30
2.5.3 导入具名函数 33
2.5.4 将具名函数作为值使用 34
2.6 结束语 36
2.6.1 练习 36
第3章 使用模式匹配控制程序流程 39
3.1 模式匹配 39
3.2 从各种数据中提取值 41
3.2.1 匹配部分字符串 41
3.2.2 匹配元组 42
3.2.3 匹配列表 45
3.2.4 匹配映射表 48
3.2.5 映射表与关键字列表 50
3.2.6 匹配结构体 50
3.3 用函数控制流程 52
3.3.1 函数的默认值 54
3.4 使用卫语句控制流程 55
3.5 Elixir的流程控制结构 60
3.5.1 Case:使用模式匹配进行控制 60
3.5.2 Cond:使用逻辑表达式进行控制 62
3.5.3 使用if和unless表达式 62
3.6 小结 64
第4章 运用递归 67
4.1 有界递归 67
4.1.1 遍历列表 69
4.1.2 转换列表 70
4.2 递归治理 73
4.2.1 减治法 74
4.2.2 分治法 75
4.3 尾调用优化 79
4.4 无界递归函数 82
4.4.1 添加界限 84
4.4.2 避免无限循环 85
4.5 递归调用匿名函数 87
4.6 小结 88
第5章 使用高阶函数 91
5.1 处理列表的高阶函数 92
5.1.1 遍历列表 92
5.1.2 转换列表 93
5.1.3 将列表归纳为一个值 95
5.1.4 过滤列表项 96
5.2 使用 Enum 模块 97
5.3 使用推导式 99
5.4 管道运算符 100
5.5 延迟计算 103
5.5.1 延迟执行函数 103
5.5.2 处理无限数据 105
5.5.3 数据流管道 108
5.6 小结 112
5.6.1 练习 112
第6章 设计Elixir应用程序 113
6.1 使用Mix创建项目 113
6.1.1 我们将创建什么 114
6.1.2 运行新任务 115
6.1.3 创建启动任务 117
6.2 设计实体的结构体 118
6.2.1 创建角色的结构体 118
6.2.2 列出英雄 120
6.2.3 选择一个英雄角色 123
6.3 使用协议创建多态函数 126
6.3.1 构建引用结构体的结构体 126
6.3.2 重构模块和复用函数 127
6.3.3 使用协议显示角色和动作 130
6.4 创建模块行为 133
6.4.1 使用Elixir行为创建出口 134
6.4.2 添加类型规范 137
6.4.3 战斗到底 140
6.5 小结 146
6.5.1 练习 146
第7章 处理非纯函数 149
7.1 纯函数与非纯函数 150
7.1.1 纯函数 150
7.1.2 非纯函数 151
7.2 控制非纯函数的流程 153
7.3 Try、Rescue、Catch 157
7.3.1 Try、Raise、Rescue 157
7.3.2 Try、Throw、Catch 159
7.4 使用错误单子处理非纯函数 161
7.5 使用with 167
7.6 小结 169
7.6.1 练习 170
7.6.2 尾声 170
附录1 为游戏添加房间 173
附录2 练习答案 177
A2.1 第2章练习答案 177
A2.2 第3章练习答案 178
A2.3 第4章练习答案 181
A2.4 第5章练习答案 184
参考书目 187
致谢 189
索引 191