七周七语言 卷2
内容介绍
本书深入研习对未来编程具有重要意义的7种语言
Lua、Factor、Elixir、Elm、Julia、Idris和MiniKanren
本书带领读者认识和学习7种编程语言,旨在帮助读者探索更为强大的编程工具。
本书延续了同系列的畅销书《七周七语言》《七周七数据库》和《七周七Web开发框架》的体例和风格。
全书共8章,前7章介绍了Lua、Factor、Elm、Elixir、Julia、miniKanren和Idris共计7种编程语言,最后一章总结回顾了所有的知识点。书中对每一种编程语言的介绍,都为编程开发带来了独特而强大的思路。除此之外,书中还提供了一系列代码示例和在线资源以供参考。
本书适合有一定基础的开发人员阅读,能够帮助读者拓宽思路,激发更多的灵感。
目录
- 第1章 Lua 1
- 第一天:开始历险 1
- 本周日程 2
- Lua一览 3
- 安装Lua 3
- 交互式开发 3
- 初窥 4
- Lua基础 5
- 表达式 6
- 函数 7
- 具名参数 10
- 控制流程 10
- 变量 11
- 离开REPL 12
- 第一天我们学了什么 13
- 轮到你了 13
- 第二天:深入了解Table 14
- Table当作字典用 14
- 穿着数组外衣的字典 16
- metatables 17
- 自制面向对象系统 21
- 协程 25
- 多任务 26
- Lua作者Roberto Ierusalimschy
- 访谈 29
- 第二天我们学了什么 30
- 轮到你了 31
- 第三天:真实世界中的Lua 32
- 制作音乐 33
- 为历险做准备 33
- 创建项目 34
- 添加声效 36
- 从音符到歌曲 39
- 多声道 43
- Canon in D 45
- 第三天我们学了什么 46
- 轮到你了 46
- Lua小结 47
- 优势 47
- 劣势 47
- 终章 48
- 第2章 Factor 49
- 第一天:栈,栈 50
- 第一天我们学到了什么 59
- 第二天:更进一步 61
- 运行独立的程序 64
- 写单元测试 67
- Factor的创建者Slava·Factor的
- 采访 69
- 第二天我们学到了什么? 70
- 轮到你了 71
- 第三天:乘风破浪,搏击长空 72
- 元组 72
- 元组构造器 73
- 为购物车结账 74
- 把命令组装成流水管道 75
- 重新回顾FizzBuzz游戏 78
- 与生俱来以下功能 81
- 编辑器集成 82
- 演示 83
- 第三天我们学了什么 83
- 轮到你了 84
- 总结Factor 84
- 第3章 Elm 86
- 第一天:掌握基础 87
- 第二天:驯服回调 97
- 第三天:一切都是游戏 107
- Elm总结 119
- 第4章 Elixir 120
- 第一天:夯实基础 121
- 安装Elixir 121
- 所以说……它是Ruby ,
- 对吗 122
- 不,不是Ruby 122
- 编写函数 124
- 使用管道组织程序 125
- 使用模块 126
- 命名函数 127
- do构造块 127
- 使用map 129
- list 130
- for推导 133
- keyword List 134
- 函数语法糖 135
- 第一天我们学到了什么 135
- 第二天:控制变化 137
- Mix 137
- 从具体到元 138
- 使用struct为字段命名 139
- 创建具体行为 140
- 为状态机建模 141
- 添加状态机行为 142
- 寻找模式 143
- 编写测试 144
- 使用宏实现should 145
- 编写更多的测试 146
- 编写一个复杂的宏 147
- 理解编译期流程 148
- 构造一个骨架 148
- 理解编译期流程,第2部分 150
- 使用状态机 152
- 第二天我们学到了什么 152
- 第三天:衍生和重生 154
- 衍生进程 155
- 构建一个OTP应用 156
- 在终端中使用OTP 158
- 可靠性监护 159
- 第三天我们学到了什么 161
- 第三天自习 161
- Exlir总结 162
- 优势 162
- 弱点 163
- 最后的思考 163
- 第5章 Julia 164
- 第一天:无谓的反抗 165
- 安装Julia 165
- 内置类型 166
- 第一天我们学到了什么? 175
- 轮到你了 175
- 第二天:吸收 176
- 控制流 176
- 用户定义类型和函数 178
- 并发 182
- 采访Julia的创始人:Jeff Bezanson, Stefan
- Karpinski, Viral Shah, Alan Edelman 185
- 我们第二天学到了什么? 186
- 轮到你了 187
- 第三天:打成一片 187
- 转换代码而不是数据 188
- 图像切处和切块 191
- 第三天我们学到了什么? 196
- 轮到你了 196
- Julia总结 197
- 优势 197
- 劣势 198
- 最后的思考 198
- 第6章 miniKanren 199
- 第一天:代码的一致性匹配 199
- 安装core.logic 200
- 目标一定要成功 201
- 使用关系 202
- 用因子编程 204
- 平行宇宙 206
- 咒语的秘密 207
- 第一天我们学到了什么 208
- 轮到你了 209
- 第二天:混合逻辑与函数 210
- 模式,那里都是模式 210
- 用上散列图 212
- 另一种判定 213
- 对David Nolen的采访 216
- 第二天我们学到了什么 217
- 轮到你了 218
- 第三天:用逻辑来写故事 218
- 用有限域编程 219
- 神奇的故事 221
- 第三天我们学到了什么 228
- 轮到你了 228
- miniKanren的回顾 229
- 优势 229
- 劣势 230
- 写在最后 230
- 第7章 Idris 231
- 第一天:基础 232
- 安装Idris 232
- 理解基础 233
- 原生类型和表达式 233
- 函数 234
- 定义数据类型 236
- 第一天我们学到了什么 240
- 轮到你了 240
- 第二天:开始使用依赖类型 241
- 理解依赖类型 241
- 派生依赖类型 243
- 闰年里的日期限定 245
- 第二天我们学到了什么 248
- 轮到你了 248
- 第三天:依赖类型实践 249
- 智能补全 249
- 证明完毕,亲爱的华生 251
- 交互式证明 252
- 下一步 254
- 证明为我们做了什么 256
- 现实世界 257
- 一段乱糟糟的C 代码 257
- 指称设计 258
- 回顾 259
- 改善 260
- 轮到你了 261
- 结束Idris 262
- 第8章 总结 264
- 起源 264
- 中央高速公路 265
- 前沿 267
- 脏地图 268
- 最后的挑战 270