首页

《Clojure程序设计》PDF英文版本下载

标签:Clojure设计,Java,抽象编程,Inspector,defspec     发布时间:2016-12-08   
  • 云盘下载:
  • [提取码:0000]
  • 本地下载:
       ( 需积分:2  )

一、目录介绍

Clojure程序设计_英文版副本.jpg

第1章  启航
1.1    为什么是Clojure2
1.1.1  Clojure非常优雅2
1.1.2  Clojure是Lisp的再度崛起5
1.1.3  为什么是Lisp5
1.1.4  它是Lisp,但括号少了6
1.1.5  Clojure是函数式语言8
1.1.6  Clojure简化了并发编程9
1.1.7  Clojure与Java虚拟机彼此亲密无间10
1.2    Clojure编程快速入门11
1.2.1  使用REPL12
1.2.2  特殊变量13
1.2.3  添加共享状态14
1.3    探索Clojure的程序库16
1.3.1  require和use17
1.3.2  查找文档18
1.4    小结20

第2章  探索Clojure21
2.1    形式21
2.1.1  使用数值类型22
2.1.2  符号24
2.1.3  字符串与字符25
2.1.4  布尔值与nil27
2.1.5  映射表、关键字和记录28
2.2    读取器宏30
2.3    函数32
2.3.1  匿名函数34
2.3.2  何时使用匿名函数36
2.4    变量、绑定和命名空间36
2.4.1  绑定37
2.4.2  解构38
2.4.3  命名空间40
2.5    调用Java43
2.5.1  访问构造函数、方法和字段43
2.5.2  Javadoc45
2.6    流程控制45
2.6.1  分支结构与if45
2.6.2  用do引入副作用46
2.6.3  循环与loop/recur47
2.7    我的for循环哪儿去了48
2.8    元数据52
2.9    小结53

第3章  一切皆序列55
3.1    一切皆序列56
3.2    使用序列库61
3.2.1  创建序列61
3.2.2  过滤序列64
3.2.3  序列谓词65
3.2.4  序列转换66
3.3    惰性和无限序列69
3.4    Java亦可序化71
3.4.1  序化Java容器71
3.4.2  序化正则表达式73
3.4.3  序化文件系统74
3.4.4  序化流75
3.4.5  序化XML76
3.5    调用特定于结构的函数77
3.5.1  列表函数77
3.5.2  向量函数78
3.5.3  映射表函数79
3.5.4  集合函数82
3.6    小结85

第4章  函数式编程86
4.1    函数式编程理念86
4.1.1  纯函数87
4.1.2  持久性数据结构87
4.1.3  惰性和递归88
4.1.4  引用透明性89
4.1.5  FP的优势89
4.1.6  6条规则90
4.2    怎样偷个懒91
4.2.1  尾递归92
4.2.2  自递归与recur94
4.2.3  惰性序列95
4.2.4  聊聊变现97
4.2.5  丢弃头元素98
4.3    懒上加懒99
4.4    再议递归105
4.4.1  转换为自递归106
4.4.2  采用Trampolining技术107
4.4.3  用惰性化替代递归109
4.4.4  用快存为递归抄条近路112
4.5    小结114

第5章  状态115
5.1    并发、并行和锁定116
5.2    引用与软事务内存117
5.2.1  ref—set118
5.2.2  事务的属性118
5.2.3  alter119
5.2.4  STM的工作原理:MVCC120
5.2.5  commute121
5.2.6  alter优先122
5.2.7  为引用添加验证123
5.3    使用原子进行非协同、同步的更新124
5.4    使用代理进行异步更新125
5.4.1  代理的验证与错误处理126
5.4.2  在事务中包含代理127
5.4.3  统一的更新模型129
5.5    用变量管理线程内状态129
5.5.1  远距离作用131
5.5.2  用于Java回调API132
5.6    Clojure贪吃蛇134
5.6.1  函数式模型135
5.6.2  使用STM建立可变模型139
5.6.3  贪吃蛇的GUI140
5.6.4  没有引用的贪吃蛇143
5.7    小结144

第6章  协议和数据类型145
6.1    针对抽象编程145
6.2    接口148
6.3    协议149
6.4    数据类型153
6.5    记录158
6.6    具体化164
6.7    小结165

第7章  宏166
7.1    何时使用宏166
7.2    编写流程控制宏167
7.2.1  特殊形式、设计模式和宏169
7.2.2  宏展开170
7.2.3  when与when—not172
7.3    让宏更加简单173
7.3.1  语法引述、解引述和解引述拼接175
7.3.2  在宏内部创建名称176
7.4    宏的分类178
7.4.1  有条件的求值180
7.4.2  创建变量181
7.4.3  Java互操作183
7.4.4  延迟求值184
7.4.5  对求值进行包装184
7.4.6  避免Lambda表达式186
7.5    小结187

第8章  多重方法188
8.1    没有多重方法的日子188
8.2    定义多重方法190
8.2.1  调度是继承感知的192
8.2.2  多重方法的默认值192
8.3    调度不简单193
8.4    创建特设分类法195
8.5    何时应该使用多重方法199
8.5.1  Inspector200
8.5.2  clojure.test201
8.5.3  反例202
8.6    小结203

第9章  极尽Java之所能204
9.1    异常处理205
9.1.1  保持简单的异常处理205
9.1.2  清理资源206
9.1.3  响应异常207
9.2    与整数搏斗209
9.3    性能优化210
9.3.1  使用基本类型提升性能210
9.3.2  添加类型提示213
9.4    在Clojure中创建Java类215
9.4.1  创建Java代理215
9.4.2  使用Java容器217
9.5    真实世界的例子220
9.5.1  真正的持续循环222
9.5.2  日志224
9.5.3  配置226
9.6    小结227

第10章  搭建应用228
10.1    为电码译员游戏计分229
10.2    测试计分器232
10.2.1  手工构造输入233
10.2.2  运行测试234
10.2.3  验证输出235
10.2.4  回归测试236
10.3    test.generative237
10.3.1  生成数据237
10.3.2  程序化验证238
10.3.3  defspec240
10.3.4  运行测试241
10.3.5  规格执行失败时242
10.3.6  计分函数的产生式测试243
10.4    创建用户界面244
10.4.1  该是时候处理状态了245
10.4.2  玩家界面246
10.5    部署代码249
10.5.1  Procfile250
10.5.2  Heroku库250
10.5.3  Git251
10.5.4  安置你的应用251
10.5.5  部署252
10.6    小结252
附录编辑器254
参考书目255

��
<<热门下载>>