图书介绍

Clojure编程PDF|Epub|txt|kindle电子书版本网盘下载

Clojure编程
  • (美)ChasEmerick(蔡司埃默里克),BrianCarper(布赖恩卡珀),ChristopheGrand(克里斯托弗格兰德)著;徐明明,杨寿勋译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121197185
  • 出版时间:2013
  • 标注页数:601页
  • 文件大小:204MB
  • 文件页数:628页
  • 主题词:程序语言-语言设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐