《Clojure编程》书籍《Clojure编程》

《Clojure编程》书籍《Clojure编程》

作者:《Clojure编程》书籍

出版社:电子工业出版社

出版年:2013-3-26

评分:8.4

ISBN:9787121197185

所属分类:网络科技

书刊介绍

内容简介

作者介绍:

Chas Emerick是软件公司Snowtide informatics的创始人。自2008年以来,致力于Clojure语言本身以及一些开源项目的开发;长期在cemerick.com撰写Clojure、软件开发实践、创业精神,及其他主题的文章。

Brian Carpe r是一位心理学研究领域的专业程序员,用Clojure从事数据分析与web开发。他开发过一个把Clojure代码转化为CSS代码的编译器以及一个操作关系型数据库的类库,经常在briancarper.net上发表Clojure文章。

Christophe Grand是一个独立顾问,现居法国里昂。他主要从事Clojure培训与编码,参与了Clojure语言的开发,撰写过Enlive和 Moustache类库,也是Counterclockwise——Clojure IDE for Eclipse的贡献者,经常在clj-me.cgrand.net上发表有关Clojure的文章。

译者介绍:

徐明明,阿里巴巴资深软件开发工程师,热衷于研究开源技术及语言;目前网络浏览量最大的Clojure入门教程( http://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/)即译自其手;参与Twitter开源实时计算框架Storm的开发,是该项目的核心贡献者(该项目的主要语言就是Clojure), 同时也翻译了该项目的很多文档,推进了该项目在中国的应用。

作品目录

第1章 进入Clojure仙境 1

为什么要选择Clojure? 1

获取Clojure 3

Clojure REPL 3

不!括号真的不会让你瞎了眼 6

表达式、操作符、语法以及优先级 7

同像性 10

Clojure Reader 12

命名空间 21

符号解析 23

特殊形式 24

小结 46

这只是开始 48

第1部分 49

第2章 函数式编程 51

所谓函数式编程,到底意味着什么? 52

谈谈值的重要性 52

作为头等公民的函数以及高阶函数 59

函数(功能)的组合 68

纯函数 76

现实生活中的函数式编程 80

第3章 集合类与数据结构 83

抽象优于实现 84

访问集合元素的简洁方式 111

数据结构的类型 115

不可变性和持久性 123

元数据 136

用Clojure的集合来小试牛刀 137

总结 159

第4章 多线程和并发 161

计算在时间和空间内的转换 162

简单的并行化 168

状态和标识 170

Clojure的引用类型 172

并发操作的分类 174

原子类型(Atom) 176

通知和约束 179

ref 182

var 200

Agent 211

使用Java的并发原语 227

总结 228

第2部分 229

第5 章 宏 231

宏到底是什么? 231

编写你的第一个宏 237

调试宏 239

语法 242

什么时候使用宏 245

宏卫生 247

宏的常见用法和模式 253

隐藏参数:&env 和 &form 255

深入 -> 和 ->> 263

总结 266

第6章 数据类型和协议 267

协议(Protocol) 268

扩展已有的类型 270

定义你自己的类型 274

实现协议 284

协议自省 293

协议函数分派的边界场景 295

自己实现一个set 296

总结 304

第7章 多重方法 305

多重方法基础 305

通往层级之路 308

层级 310

真正实现多重! 315

还有几件事 317

最后的思考 321

第3 部分 323

第8章 Clojure项目的组织与构建 325

项目布局 325

构建 339

最后的思考 355

第9章 Java及JVM互操作 357

JVM是Clojure的基础 358

Java类、方法和字段的使用 358

便利的互操作工具 361

异常与错误处理 363

为了效率进行类型提示 367

定义类、实现接口 372

在Java里使用Clojure 386

乐于合作的伙伴 393

第10章 面向REPL的编程 395

交互式开发 395

工具集 400

在REPL里调试、监测和打补丁 412

重定义结构的限制 416

小结 418

第4部分 419

第11章 数字与数学 421

Clojure的数字 421

Clojure数学 427

相等与等值 432

优化数值效率 436

用Clojure可视化芒德布罗集 448

第12章 设计模式 457

依赖注入 459

策略模式 462

责任链 463

面向方面的编程 466

最后的思考 470

第13章 测试 471

不可变值与纯函数 471

clojure.test 473

HTML DSL的成长 482

依赖断言 486

第14章 使用关系数据库 491

clojure.java.jdbc 491

Korma 498

Hibernate 503

最后的思考 510

第15章 使用非关系型数据库 511

安装CouchDB和Clutch 512

基本的CRUD操作 512

视图 513

_changes: 把CouchDB滥用做消息队列 519

可随意点选的消息队列 521

最后的思考 524

第16章 Clojure与Web 525

Clojure栈 525

基石:Ring 526

用Compojure路由请求 533

使用模板 543

最后的思考 552

第17章 布署Clojure Web应用程序 553

Java与Clojure Web架构 553

在本地运行Web应用 561

Web应用程序布署 562

超越简单Web应用程序布署 565

第5部分 567

第18章 明智地选择Clojure类型定义形式 569

第19章 在工作场所引进Clojure 573

只是事实… 573

强调生产效率 574

强调社群 576

审慎 577

第20章 下一步? 579

(dissoc Clojure ‘JVM) 579

4Clojure 580

Overtone 581

core.logic 581

Pallet 582

Avout 582

Heroku上的Clojure 583

关于作者 585

相关推荐

微信二维码