Clojure 編程實戰, 2/e (Clojure in Action, 2/e)
內容描述
本書共11章。第1章簡要介紹了Clojure語言及其三大支柱。第2章介紹REPL。第3章介紹Clojure更獨特的特性,包括元數據、異常處理、高階函數、兩組作用域規則(詞法和動態)、組織代碼的命名空間等。第4章討論三種基本的多態性和使用多重方法時各種多態性在Clojure中的表現。第5章介紹Clojure與JVM的結合。第6章解釋Clojure的狀態管理和開發方法,以及四種基本的開發原語。第7章介紹Clojure的宏系統。第8章深入介紹函數式編程範式,以及第3章中所涉及的高階函數的使用方法。第9章討論表達問題。第10章說明如何將編寫測試驅動代碼的過程與第2章中介紹的ClojureREPL相結合,從而顯著提升效率。第11章介紹高級宏和DSL。
目錄大綱
第1章 Clojure簡介1
1.1 Clojure的概念以及採用的原因1
1.2 語言基礎知識6
1.3 宿主互操作性:JVM速成教程9
1.4 小结12
第2章 Clojure要素:數據結構和函数14
2.1 在REPL上編碼14
2.2 Clojure數據結構21
2.3 程序结構31
2.4 程序流程35
2.5 小结49
第3章 Clojure構件50
3.1 元數據51
3.2 Java異常:try和throw55
3.3 函数56
3.4 作用域73
3.5 命名空間79
3.6 解構83
3.6.1 向量绑定84
3.6.2 映射绑定85
3.7 讀取器字面量87
3.8 小结89
第4章 多重方法多態90
4.1 多態及其類型90
4.2 用多重方法實現多態94
4.3 小结105
第5章 探索Clojure和Java互操作106
5.1 從Clojure中調用Java107
5.2 將Clojure代碼編譯為Java字節碼115
5.3 從Java調用Clojure122
5.4 小结123
第6章 狀態和開發的世界124
6.1 狀態存在的問题125
6.2 標示與值的分離127
6.3 Clojure的方法130
6.4 引用132
6.5 代理137
6.6 原子141
6.7 變量143
6.8 狀態及其统一訪問模型145
6.9 決定使用哪種托管引用類别147
6.10 future和promise148
6.11 小结150
第7章 通過宏發展Clojure151
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 comment161
7.2.2 declare161
7.2.3 defonce162
7.2.4 and162
7.2.5 time163
7.3 編寫自己的宏163
7.3.1 infix164
7.3.2 randomly164
7.3.3 defwebmethod165
7.3.4 defnn166
7.3.5 assert-true167
7.4 小结169
第8章 函数式编程深入研究170
8.1 使用高階函数170
8.2 部分應用175
8.3 閉包180
8.4 小结196
第9章 協議、紀錄和類型197
第10章 測試驅動與開發及其他223
第11章 更多的宏和DSL242
結 語275
作者介紹
阿米特·拉索爾(Amit Rathore)
有12年構建大规模、数據密集型應用的開發经验,目前正在為一個高分布式、高負载的大數據系统開發Clojure代码。
弗朗西斯·阿维拉(Francis Avila)
Breeze的軟件開發工程师,有7年Web前端和后端開發经驗。