第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的发明者RobertoIerusalimschy访谈 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
安装Factor 50
使用监听器 51
开始入栈 52
Factor数学 53
数据类型 53
栈重排(StackShuffling) 56
带有组合器的高阶命令 57
第一天我们学到了什么 59
轮到你了 59
第二天:更进一步 61
定义命令 61
返回多个值 61
获取帮助 62
使用命令表 63
运行独立的程序 64
写单元测试 67
运行一组测试 68
Factor的创建者SlavaPestov的采访 69
第二天我们学到了什么 70
轮到你了 71
第三天:乘风破浪,搏击长空 72
元组 72
元组构造器 73
为购物车结账 74
把命令组装成流水管道 75
重新回顾FizzBuzz游戏 78
与生俱来以下功能 81
编辑器集成 82
演示 83
第三天我们学了什么 83
轮到你了 84
Factor小结 84
优势 84
劣势 85
最后的思考 85
第3章 Elm 86
第一天:掌握基础 87
安装Elm 87
简单表达式 87
条件语句 89
构造代数数据类型(Algebraic Data Type) 89
使用Records 91
使用函数 92
模式匹配(PatternMatching) 94
函数与类型 94
第一天我们学到了什么 96
轮到你了 97
第二天:驯服回调 97
克服回调地狱 99
用lift和信号来避免回调 100
组合信号 101
维持状态 102
处理文本输入 104
绘制形状 105
第二天我们学到了什么 106
轮到你了 106
第三天:一切都是游戏 107
定义骨架 108
定义模型 108
用信号和foldp来做循环 109
步进和展现游戏 109
步进(stepping)游戏 112
第三天我们学到了什么 117
轮到你了 118
E1m小结 119
优势 119
劣势 119
最后的思考 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
轮到你了 136
第二天:控制变化 137
Mix 137
从具体到元 138
使用struct为字段命名 139
创建具体行为 140
为状态机建模 141
添加状态机行为 142
寻找模式 143
编写测试 144
使用宏实现should 145
编写更多的测试 146
编写一个复杂的宏 147
理解编译期流程 148
构造一个骨架 148
理解编译期流程,第2部分 150
使用状态机 152
第二天我们学到了什么 152
轮到你了 153
第三天:衍生和重生 154
衍生进程 155
构建一个OTP应用 156
在终端中使用OTP 158
可靠性监护 159
第三天我们学到了什么 161
轮到你了 161
Exlir小结 162
优势 162
劣势 163
最后的思考 163
第5章 Julia 164
第一天:无谓的反抗 165
安装Julia 165
内置类型 166
基本运算符 167
字典和集合 168
24世纪的数组 170
索引和切片 171
多维数组 172
第一天我们学到了什么 175
轮到你了 175
第二天:吸收 176
控制流 176
用户定义类型和函数 178
并发 182
采访Julia的创始人:JeffBezanson,Stefan Karpinski,Viral Shah,Alan Edelman 185
第二天我们学到了什么 186
轮到你了 187
第三天:打成一片 187
转换代码而不是数据 188
图像切片和切块 191
第三天我们学到了什么 196
轮到你了 196
Julia小结 197
优势 197
劣势 198
最后的思考 198
第6章 miniKanren 199
第一天:代码的一致性匹配 199
安装core.1 ogic 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
优势 262
劣势 262
最后的思考 262
第8章 总结 264
起源 264
中央高速公路 265
前沿 267
脏地图 268
最后的挑战 270