图书介绍
Clojure编程PDF|Epub|txt|kindle电子书版本网盘下载
![Clojure编程](https://www.shukui.net/cover/25/30302323.jpg)
- (美)ChasEmerick(蔡司埃默里克),BrianCarper(布赖恩卡珀),ChristopheGrand(克里斯托弗格兰德)著;徐明明,杨寿勋译 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121197185
- 出版时间:2013
- 标注页数:601页
- 文件大小:204MB
- 文件页数:628页
- 主题词:程序语言-语言设计
PDF下载
下载说明
Clojure编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章进入Clojure仙境1
为什么要选择Clojure?1
获取Clojure3
Clojure REPL3
不!括号真的不会让你瞎了眼6
表达式、操作符、语法以及优先级7
同像性10
Clojure Reader12
标量字面量13
注释18
空格和逗号19
集合字面量20
reader的一些其他语法糖20
命名空间21
符号求值23
特殊形式24
阻止求值:quote25
代码块:do26
定义Var:def27
本地绑定:let27
解构(let,第2部分)29
定义函数:fn36
条件判断:if42
循环:loop和recur43
引用var : var44
和Java的互操作:和new45
异常处理:try和throw45
状态修改:set!46
锁的原语:monitor-enter和monitor-exit46
小结46
eval47
这只是开始48
第1部分 函数式编程以及并发51
第2章 函数式编程51
所谓函数式编程,到底意味着什么?52
谈谈值的重要性52
关于值53
值与可变对象的比较54
一个关键性的选择58
作为头等公民的函数以及高阶函数59
Apply, Partial64
函数(功能)的组合68
编写高阶函数71
利用可组合的高阶函数构建一个日志系统72
纯函数76
为什么纯函数很有意思?77
现实生活中的函数式编程79
第3章集合类与数据结构81
抽象优于实现82
集合:collection85
序列:Sequence87
Associative97
索引集合:Indexed101
栈:stack103
set103
有序集合:sorted104
访问集合元素的简洁方式109
习惯用法111
集合、key以及高阶函数111
数据结构的类型113
列表:List113
vector114
set115
map116
不可变性和持久性121
持久性与结构共享122
易变集合128
元数据133
用Clojure的集合来小试牛刀135
标识符和循环引用135
思维方式的改变:从命令式到函数式137
遍历、更新以及Zipper151
总结157
第4章多线程和并发159
计算在时间和空间内的转换160
delay160
future162
promise163
简单的并行化166
状态和标识168
Clojure的引用类型170
并发操作的分类172
原子类型(Atom)174
通知和约束176
观察器177
校验器179
ref180
软件事务内存180
对ref进行修改的机制181
STM的一些缺点192
var198
定义var199
动态作用域202
var不是变量207
前置声明208
agent209
处理agent action中的错误212
1/O、事务以及嵌套的Send215
使用Java的并发原语225
Locking226
总结226
第2部分 构建抽象229
第5章 宏229
宏到底是什么?229
宏不是什么231
有什么是宏能做而函数不能做的232
宏vs.Ruby的eval234
编写你的第一个宏235
调试宏237
宏扩展237
语法240
引述和语法引述240
反引述与编接反引述241
什么时候使用宏243
宏卫生245
Gensym来拯救246
让宏的用户来选择名字249
重复求值249
宏的常见用法和模式251
隐藏参数:&env和&form252
&env253
&form254
测试上下文相关的宏259
深入->和->>261
总结264
第6章数据类型和协议265
协议266
扩展已有的类型268
定义你自己的类型272
记录274
类型280
实现协议282
内联实现284
重用实现287
协议自省291
协议函数分派的边界场景292
自己实现一个set294
总结302
第7章 多重方法303
多重方法基础303
通往层级之路306
层级308
独立层级310
真正实现多重!313
还有几件事315
多重继承315
内省多重方法316
type或class;或者说,映射的报复316
转发函数的范围是无限的318
最后的思考319
第3部分工具、平台以及项目323
第8章Clojure项目的组织与构建323
项目布局323
定义与使用命名空间323
位置、位置、位置334
Clojure代码库的功能组织335
构建337
提前编译338
依赖管理340
Maven的依赖管理模型340
构建工具与配置模式345
最后的思考353
第9章Java及JVM互操作355
JVM是Clojure的基础356
Java类、方法和字段的使用356
便利的互操作工具359
异常与错误处理361
摆脱检查型异常363
with-open:finally的挽歌364
为了效率进行类型提示365
数组369
定义类、实现接口370
匿名类的实例:proxy370
定义具名的类373
注解380
在Java里使用Clojure384
使用deftype和defrecord类386
实现协议接口389
乐于合作的伙伴391
第10章面向REPL的编程393
交互式开发393
持续、演化的环境397
工具集398
最简的REPL399
Eclipse402
Emacs405
在REPL里调试、监测和打补丁410
“已部署”REPL的特别考虑412
重定义结构的限制413
小结415
第4部分实战419
第11章数字与数学419
Clojure中的数字419
Clojure首选64比特(或更大)的表示420
Clojure的混合数字模型420
有理数422
数字传播规则423
Clojure中的数学425
有限与任意精度425
无检查的操作428
任意精度的小数操作的刻度和取整模式429
相等与等值430
对象相同(identical?)431
引用相等(=)431
数字等值(=)432
优化数字效率434
声明函数接受和返回原始类型435
合理使用原始类型的数组439
用Clojure可视化芒德布罗集447
第12章设计模式455
依赖注入457
策略模式460
责任链462
面向方面的编程464
最后的思考468
第13章测试469
不可变值与纯函数469
模拟470
clojure.test471
定义测试472
测试“套件”475
Fixtures477
HTML DSL的成长480
依赖断言484
前条件和后条件486
第14章使用关系数据库489
clojure.java.jdbc489
with-query-results解析492
事务494
连接池494
Korma496
前奏496
查询497
为什么不嫌麻烦地用DSL?498
Hibernate501
设置501
持续数据504
运行查询505
去掉样板506
最后的思考507
第15章 使用非关型数据库509
安装CouchDB和Clutch510
基本的CRUD操作510
视图512
一个简单的(JavaScript)视图512
用Clojure写的视图514
_ changes:把CouchDB滥用做消息队列517
可随意点选的消息队列519
最后的思考522
第16章Clojure与Web523
Clojure栈523
基石:Ring524
请求与应答525
适配函数527
处理函数528
中间件529
用Compojure路由请求531
使用模板541
Enlive:基于选择器的HTML转换542
最后的思考550
第17章部署Clojure Web应用程序551
Java与Clojure Web架构551
Web应用程序打包554
在本地运行Web应用559
Web应用程序部署560
在Amazon的 Elastic Beanstalk上部署Clojure应用560
超越简单Web应用程序部署563
第5部分杂项567
第18章明智地选择Clojure类型定义形式567
第19章在工作场所引进Clojure571
事实是571
强调生产效率573
强调社区574
审慎575
第20章下一步?577
(dissoc Clojure’JVM)577
ClojureCLR577
ClojureScript578
4Clojure578
Overtone578
core.logic579
Pallet580
Avout580
Heroku上的Clojure581
索引583