前端函數式攻城指南

前端函數式攻城指南
定價:354
NT $ 354
  • 作者:歐陽繼超
  • 出版社:電子工業出版社
  • 出版日期:2016-10-01
  • 語言:簡體中文
  • ISBN10:7121297248
  • ISBN13:9787121297243
  • 裝訂:175頁 / 普通級 / 1-1
 

內容簡介

在后端,函數式語言層出不窮。在前端,函數式最后的邊界也已經被漸漸打破。Scala的Scala.js、Clojure的ClojureScript都試圖同構移向前端。然而,原生JavaScript其實也可以通過豐富的庫讓前端的函數式編程一樣的舒適和優雅。

本書涵蓋了大部分函數式編程思想,包括JavaScript的函數式支持,Clojure風格的集合、遞歸、函數組合、宏、模式匹配、實用的Monads,以及前端的並發編程。本書適合想要了解函數式編程的JavaScript程序員或者想學習JavaScript的函數式程序員閱讀。

歐陽繼超,ThoughtWorks高級咨詢師,活躍開源貢獻者(github.com/jcouyang),熱愛編程與寫作,譯有《函數式JavaScript》以及若干開源書籍與文檔。
 

目錄

第1章 函數式JavaScript1
1.1 JavaScript也是函數式語言嗎1
1.1.1 編程范式1
1.1.2JavaScript的函數式支持3
1.2 作為函數式語言,JavaScript還差些什麼10
1.2.1不可變數據結構11
1.2.2惰性求值11
1.2.3函數組合12
1.2.4尾遞歸優化13
1.3Underscore你錯了14
1.3.1跟大家都不一樣的map函數14
1.3.2 ClojureScript16
1.3.3 Mori17
1.4小結18

第2章 集合19
2.1 集合的使用20
2.1.1 向量(vector)20
2.1.2 Map23
2.1.3 函數組合子24
2.2 持久性數據結構27
2.2.1 向量的持久性數據結構28
2.2.2 最后一片葉子不完整31
2.2.3 所有葉子完整且葉子個數不大於完全樹的葉子個數32
2.2.4 所有葉子完整且葉子個數大於完全樹的葉子個數34
2.3 不可變性35
2.3.1 致命魔術36
2.3.2 引用透明性38
2.3.3 函數式React40
2.3.4 線程不安全42
2.4 惰性序列44
2.4.1 改良奧利奧吃法44
2.4.2 惰性求值與及早求值46
2.4.3 惰性求值的實現48
2.5 小結50

第3章 遞歸51
3.1 不可變性與遞歸51
3.1.1 真的需要循環嗎52
3.1.2 遞歸還是循環54
3.2 柯里悖論55
3.2.1 Y組合子57
3.2.2 棧是多麼容易爆60
3.3 尾遞歸優化62
3.4 蹦跳樂園(Trampoline)64
3.4.1 有窮狀態機(DFA)65
3.4.2 Trampoline67
3.5 小結69

第4章 函數組合70
4.1 Underscore到底做錯了什麼70
4.1.1 自由(Free)變量與約束(Bound)變量72
4.1.2 閉包74
4.2 柯里化有什麼用75
4.3 Transducer78
4.3.1 Reducer79
4.3.2 來看看更好更快的解法79
4.3.3 Reducer80
4.3.4 Reducible81
4.3.5 Transducer詳解82
4.3.6 跟柯里化有什麼區別83
4.4 組合與管道84
4.4.1 管道(Pipeline)84
4.4.2 組合與管道86
4.4.3 管道函數87
4.5 小結87

第5章 Macro宏89
5.1 什麼是REPL89
5.1.1 宏擴展器(Macro Expander)90
5.1.2 那麼前端怎麼辦92
5.2 為什麼要語法糖93
5.2.1 只是為了語法漂亮嗎94
5.3 Sweet.js94
5.3.1 Rule Macro95
5.3.2 Case Macro97
5.4 Infix Macro和Operator104
5.4.1 Infix Macro104
5.4.2 自定義操作符105
5.5 小結106

第6章 模式匹配107
6.1 Destructure107
6.1.1 對象109
6.1.2 數組109
6.1.3 函數109
6.2 Arity函數110
6.3 Fizz Buzz111
6.3.1 字面匹配(Literal Matching)111
6.3.2 綁定113
6.3.3 Vector與Map匹配113
6.3.4 Guard114
6.3.5 Sparkler114
6.4 代數數據類型(ADT)116
6.5 小結118
……
第7章 Monadic編程119
第8章 並發編程154
參考資料174
 

函數式編程可以說是非常古老的編程方式,但是近年來函數式編程越來越受到人們的關注。不管是Google力推的Go、學術派的Scala與Haskell,還是Lisp的新方言Clojure,這些新的函數式編程語言都越來越受到人們的關注。
網路書店 類別 折扣 價格
  1. 新書
    $354