內容簡介
在後端,函數式語言層出不窮;在前端,函數作為最後邊界的刻
板形象也漸漸消弭不再;Scala的Scala.js、Clojure的ClojureScript都
試圖同構移向前端,而原生JavaScript也可透過豐富的函數庫,讓
前端的函數式程式設計一樣的舒適和優雅。
本書涵蓋大部分函數式程式設計思想,包括JavaScript的函數式支
援,Clojure風格的集合、遞迴、函數組合、Macro、模式比對、實
用Monads,以及前端的併發程式設計。
適用:想要瞭解函數式程式設計的JavaScript程式設計師,或想學
習JavaScript的函數式程式設計師。
板形象也漸漸消弭不再;Scala的Scala.js、Clojure的ClojureScript都
試圖同構移向前端,而原生JavaScript也可透過豐富的函數庫,讓
前端的函數式程式設計一樣的舒適和優雅。
本書涵蓋大部分函數式程式設計思想,包括JavaScript的函數式支
援,Clojure風格的集合、遞迴、函數組合、Macro、模式比對、實
用Monads,以及前端的併發程式設計。
適用:想要瞭解函數式程式設計的JavaScript程式設計師,或想學
習JavaScript的函數式程式設計師。
作者簡介
歐陽繼超
Thoughtworks高級諮詢師,活躍開源貢獻者(github.com /
jcouyang),熱愛程式設計與寫作。
Thoughtworks高級諮詢師,活躍開源貢獻者(github.com /
jcouyang),熱愛程式設計與寫作。
內容目錄
序
前言
Chpater 01 函數式JavaScript
1.1 JavaScript也是函數式語言嗎
1.2 作為函數式語言,JavaScript還差些什麼
1.3 Underscore你錯了
1.4 小結
Chpater 02 集合
2.1 集合的使用
2.2 持久性資料結構
2.3 不可變性
2.4 惰性序列
2.5 小結
Chpater 03 遞迴
3.1 不可變性與遞迴
3.2 柯里悖論
3.3 尾遞迴最佳化
3.4 蹦跳樂園(Trampoline)
3.5 小結
Chpater 04 函數組合
4.1 Underscore到底做錯了什麼
4.2 柯里化有什麼用
4.3 Transducer
4.4 組合與管線
4.5 小結
Chpater 05 Macro巨集
5.1 什麼是REPL
5.2 為什麼要語法糖
5.3 Sweet.js
5.4 Infi x Macro和Operator
5.5 小結
Chpater 06 模式比對
6.1 Destructure
6.2 Arity 函數
6.3 Fizz Buzz
6.4 代數資料類型(ADT)
6.5 小結
Chpater 07 Monadic程式設計
7.1 鏈式呼叫
7.2 Monad
7.3 走鋼絲
7.4 Monad在JavaScript中的應用
7.5 Reactive程式設計
7.6 小結
Chpater 08 平行處理程式設計
8.1 什麼是平行處理
8.2 通訊順序處理程序(CSP)
8.3 使用Generator實現CSP
8.4 實戰CSP
8.5 小結
參考資料
前言
Chpater 01 函數式JavaScript
1.1 JavaScript也是函數式語言嗎
1.2 作為函數式語言,JavaScript還差些什麼
1.3 Underscore你錯了
1.4 小結
Chpater 02 集合
2.1 集合的使用
2.2 持久性資料結構
2.3 不可變性
2.4 惰性序列
2.5 小結
Chpater 03 遞迴
3.1 不可變性與遞迴
3.2 柯里悖論
3.3 尾遞迴最佳化
3.4 蹦跳樂園(Trampoline)
3.5 小結
Chpater 04 函數組合
4.1 Underscore到底做錯了什麼
4.2 柯里化有什麼用
4.3 Transducer
4.4 組合與管線
4.5 小結
Chpater 05 Macro巨集
5.1 什麼是REPL
5.2 為什麼要語法糖
5.3 Sweet.js
5.4 Infi x Macro和Operator
5.5 小結
Chpater 06 模式比對
6.1 Destructure
6.2 Arity 函數
6.3 Fizz Buzz
6.4 代數資料類型(ADT)
6.5 小結
Chpater 07 Monadic程式設計
7.1 鏈式呼叫
7.2 Monad
7.3 走鋼絲
7.4 Monad在JavaScript中的應用
7.5 Reactive程式設計
7.6 小結
Chpater 08 平行處理程式設計
8.1 什麼是平行處理
8.2 通訊順序處理程序(CSP)
8.3 使用Generator實現CSP
8.4 實戰CSP
8.5 小結
參考資料
ISBN: 9789863797647