Clojure编程实战PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(美)阿米特·拉索尔,(美)弗朗西斯·阿维拉著;姚军等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2018
- ISBN:9787111609384
- 页数:278 页
第1章 Clojure简介 1
1.1 Clojure的概念以及采用的原因 1
1.1.1 Clojure:现代化的Lisp语言 2
1.1.2 Clojure:务实的函数式编程 3
1.1.3 JVM之上的Clojure 5
1.2 语言基础知识 6
1.2.1 Lisp语法 6
1.2.2 括号 8
1.3 宿主互操作性:JVM速成教程 9
1.3.1 Java类型、类和对象 10
1.3.2 点(.)和new运算符 11
1.3.3 线程和并发性 12
1.4 小结 12
第2章 Clojure要素:数据结构和函数 14
2.1 在REPL上编码 14
2.1.1 Clojure REPL 15
2.1.2 “Hello, world!” 16
2.1.3 用doc、find-doc和apropos查找文档 17
2.1.4 Clojure语法的另外几个要点 19
2.2 Clojure数据结构 21
2.2.1 nil、真值和假值 21
2.2.2 字符和字符串 22
2.2.3 Clojure数值 22
2.2.4 符号和关键字 23
2.2.5 列表 25
2.2.6 向量 26
2.2.7 映射 28
2.2.8 序列 30
2.3 程序结构 31
2.3.1 函数 31
2.3.2 let形式 32
2.3.3 do的副作用 33
2.3.4 读取器宏 34
2.4 程序流程 35
2.4.1 条件 35
2.4.2 逻辑函数 37
2.4.3 函数式循环 40
2.4.4 串行宏 45
2.5 小结 49
第3章 Clojure构件 50
3.1 元数据 51
3.1.1 Java类型提示 53
3.1.2 Java原始类型和数组类型 54
3.2 Java异常:try和throw 55
3.3 函数 56
3.3.1 定义函数 57
3.3.2 调用函数 63
3.3.3 高阶函数 64
3.3.4 编写高阶函数 67
3.3.5 匿名函数 69
3.3.6 关键字和符号 70
3.4 作用域 73
3.4.1 变量和绑定 73
3.4.2 重温let形式 78
3.4.3 词法闭包 79
3.5 命名空间 79
3.5.1 ns宏 80
3.5.2 使用命名空间 82
3.6 解构 83
3.6.1 向量绑定 84
3.6.2 映射绑定 85
3.7 读取器字面量 87
3.8 小结 89
第4章 多重方法多态 90
4.1 多态及其类型 90
4.1.1 参数化多态 91
4.1.2 随意多态 91
4.1.3 子类多态 93
4.2 用多重方法实现多态 94
4.2.1 不使用多重方法时的情况 94
4.2.2 使用多重方法实现随意多态 95
4.2.3 多分派 98
4.2.4 使用多重方法实现子类多态 99
4.3 小结 105
第5.章 探索Clojure和Java互操作 106
5.1 从Clojure中调用Java 107
5.1.1 将Java类导入Clojure 107
5.1.2 创建实例 108
5.1.3 访问方法和域 108
5.1.4 宏和句点特殊形式 109
5.1.5 有助于使用Java的Clojure宏 112
5.1.6 实现接口和扩展类 114
5.2 将Clojure代码编译为Java字节码 115
5.2.1 示例:两个计算器的故事 116
5.2.2 用gen-class和gen-interface创建Java类和接口 118
5.3 从Java调用Clojure 122
5.4 小结 123
第6章 状态和并发的世界 124
6.1 状态存在的问题 125
6.1.1 共享状态的常见问题 125
6.1.2 传统解决方案 125
6.2 标识与值的分离 127
6.2.1 不可变值 128
6.2.2 对象和时间 129
6.2.3 不可变性和并发性 130
6.3 Clojure的方法 130
6.3.1 不可变性与性能 131
6.3.2 托管引用 132
6.4 引用 132
6.4.1 创建引用 132
6.4.2 引用突变 133
6.4.3 软件事务内存 135
6.5 代理 137
6.5.1 创建代理 137
6.5.2 代理突变 137
6.5.3 使用代理 139
6.5.4 STM事务中的副作用 141
6.6 原子 141
6.6.1 创建原子 142
6.6.2 原子突变 142
6.7 变量 143
6.7.1 创建变量和根绑定 143
6.7.2 变量绑定 144
6.8 状态及其统一访问模型 145
6.8.1 创建 145
6.8.2 读取 145
6.8.3 突变 145
6.8.4 事务 146
6.8.5 监视突变 146
6.9 决定使用哪种托管引用类别 147
6.10 future和promise 148
6.10.1 future 148
6.10.2 promise 149
6.11 小结 150
第7章 通过宏发展Clojure 151
7.1 宏的基础知识 152
7.1.1 文本替换 152
7.1.2 unless示例 153
7.1.3 宏模板 156
7.1.4 回顾:为什么使用宏 160
7.2 Clojure内部的宏 161
7.2.1 comment 161
7.2.2 declare 161
7.2.3 defonce 162
7.2.4 and 162
7.2.5 time 163
7.3 编写自己的宏 163
7.3.1 infix 164
7.3.2 randomly 164
7.3.3 defwebmethod 165
7.3.4 defnn 166
7.3.5 assert-true 167
7.4 小结 169
第8章 函数式编程深入研究 170
8.1 使用高阶函数 170
8.1.1 收集函数结果 171
8.1.2 对一系列事物进行归纳 173
8.1.3 过滤一系列事物 174
8.2 部分应用 175
8.2.1 函数适配 176
8.2.2 定义函数 179
8.3 闭包 180
8.3.1 自由变量与闭包 180
8.3.2 延迟计算与闭包 181
8.3.3 闭包与对象 182
8.3.4 一个Clojure对象系统 184
8.4 小结 196
第9章 协议、记录和类型 197
9.1 表达式问题 197
9.1.1 建立示例场景 198
9.1.2 对表达式问题的仔细观察和一些潜在的解决方案 201
9.1.3 Clojure多重方法解决方案 202
9.2 研究表达式问题的运算端 204
9.2.1 def-modus-operandi 204
9.2.2 detail-modus-operandi 205
9.2.3 跟踪你的操作方法 205
9.2.4 解决方案的错误处理和故障点 211
9.3 用协议研究表达式问题的数据类型方面 211
9.3.1 defprotocol与extend-protocol 212
9.3.2 用defrecord、 deftype和reify定义数据类型 217
9.4 小结 222
第10章 测试驱动开发及其他 223
10.1 TDD入门:操纵字符串中的日期 223
10.1.1 第一个断言 224
10.1.2 month-from和year-from 226
10.1.3 as-string 227
10.1.4 递增和递减 228
10.1.5 无情地重构 230
10.2 通过模拟和打桩改善测试 231
10.2.1 示例:费用查找器 231
10.2.2 打桩 232
10.2.3 模拟 234
10.2.4 模拟与桩的对比 235
10.2.5 管理打桩和模拟状态 238
10.3 组织测试 239
10.3.1 testing宏 240
10.3.2 are宏 240
10.4 小结 241
第11章 更多的宏和DSL 242
11.1 对宏的快速回顾 242
11.2 指代宏 244
11.2.1 指代式if 244
11.2.2 thread-it宏 246
11.3 将计算转移到编译时 249
11.3.1 示例:不使用宏的循环加密 249
11.3.2 让编译器更努力地工作 252
11.4 生成宏的宏 254
11.4.1 示例模板 254
11.4.2 实现make-synonym 255
11.4.3 使用宏生成宏的原因 258
11.5 领域特定语言 258
11.5.1 DSL驱动设计 258
11.5.2 用户分类 260
11.6 小结 270
附录A安装Clojure 271
结语 275
- 《Maya 2018完全实战技术手册》来阳编著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《星空摄影后期实战》阿五在路上著 2020
- 《半小时漫画股票实战法》财经杂质著 2019
- 《深度学习与飞桨PaddlePaddle Fluid实战》于祥 2019
- 《数字插画实战 人像创作30例》王鲁光著 2019
- 《2017国家执业药师资格考试 全考点实战通关必备 中药学综合知识与技能 第3版》国家执业药师资格考试命题研究专家组 2017
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019