Clojure編程實戰(原書第2版)

Clojure編程實戰(原書第2版) pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:阿米特·拉索爾(Amit Rathore)
出品人:
頁數:293
译者:姚軍
出版時間:2018-9
價格:79元
裝幀:平裝
isbn號碼:9787111609384
叢書系列:華章程序員書庫
圖書標籤:
  • Clojure
  • 計算機
  • 編程
  • 軟件開發
  • Lisp
  • 軟件設計
  • 計算機科學
  • 程序設計
  • Clojure
  • 函數式編程
  • 編程語言
  • 開發
  • 數據結構
  • 並發
  • 實踐
  • 代碼
  • 實戰
  • Lisp
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書是一本優秀的Clojure入門指南。書中從抽象的理論到實際的案例,對Clojure語言進行瞭全麵、係統的闡釋,可以幫助你快速掌握編寫大規模Clojure程序所必需的特性、概念和技術。

本書共11章,第1章概要介紹Clojure語言及其三大支柱;第2章介紹REPL(讀取-求值-打印循環,這是Clojure的命令行解釋程序),幫助你開始編寫Clojure代碼;第3章介紹Clojure更獨特的功能,包括元數據、異常處理、高階函數、兩組作用域規則(詞法和動態)、組織代碼的命名空間等;第4章討論三種基本的多態性和使用多重方法時各種多態性在Clojure中的錶現;第5章介紹Clojure與JVM的結閤;第6章解釋Clojure的狀態管理和並行方法,以及四種基本的並行原語;第7章介紹Clojure的宏係統;第8章深入介紹函數式編程範式,以及高階函數的利用方法;第9章處理錶達問題;第10章說明如何將編寫測試驅動代碼的過程與Clojure REPL相結閤,顯著提升效率;第11章介紹高級宏和DSL。

著者簡介

[美] 阿米特·拉索爾(Amit Rathore) 弗朗西斯·阿維拉(Francis Avila) 著:阿米特·拉索爾(Amit Rathore)有12年構建大規模、數據密集型應用的開發經驗,目前正在為一個高分布式、高負載、實時的大數據係統開發Clojure代碼。

弗朗西斯·阿維拉(Francis Avila) Breeze的軟件開發工程師,有7年Web前端和後端開發經驗。

圖書目錄

譯者序
第1版贊譽
第2版序言
第1版序言
關於本書
緻謝
第1章 Clojure簡介1
1.1 Clojure的概念以及采用的原因1
1.1.1 Clojure:現代化的Lisp語言2
1.1.2 Clojure:務實的函數式編程3
1.1.3 JVM之上的Clojure5
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 REPL15
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和throw55
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中調用Java107
5.1.1 將Java類導入Clojure107
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調用Clojure122
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和promise148
6.10.1 future148
6.10.2 promise149
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.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-operandi204
9.2.2 detail-modus-operandi205
9.2.3 跟蹤你的操作方法205
9.2.4 解決方案的錯誤處理和故障點211
9.3 用協議研究錶達式問題的數據類型方麵211
9.3.1 defprotocol與extend-protocol212
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-from226
10.1.3 as-string227
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章 更多的宏和DSL242
11.1 對宏的快速迴顧242
11.2 指代宏244
11.2.1 指代式if244
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-synonym255
11.4.3 使用宏生成宏的原因258
11.5 領域特定語言258
11.5.1 DSL驅動設計258
11.5.2 用戶分類260
11.6 小結270
附錄A 安裝Clojure271
結  語275
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

Lisp和JVM結閤的勝利✌Lisp已死,Lisp萬歲!

评分

翻譯得不錯,讀起來很舒服

评分

Lisp和JVM結閤的勝利✌Lisp已死,Lisp萬歲!

评分

Lisp和JVM結閤的勝利✌Lisp已死,Lisp萬歲!

评分

翻譯得不錯,讀起來很舒服

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有