javaScript函數式編程

來源:互聯網
上載者:User

標籤:柯裡化   3.3   中心   cal   修改   封裝   深度   類型   find   

第1章 JavaScript函數式編程簡介 1
1.1 JavaScript案例 1
1.2 開始函數式編程 4
1.2.1 為什麼函數式編程很重要 4
1.2.2 以函數為抽象單元 7
1.2.3 封裝和隱藏 9
1.2.4 以函數為行為單位 10
1.2.5 資料抽象 14
1.2.6 函數式JavaScript初試 17
1.2.7 加速 19
1.3 Underscore樣本 22
1.4 總結 23
第2章 一等函數與Applicative編程 24
2.1 函數是一等公民 24
2.2 Applicative編程 30
2.2.1 集合中心編程 31
2.2.2 Applicative編程的其他執行個體 32
2.2.3 定義幾個Applicative函數 35
2.3 資料思考 36
2.4 總結 43
第3章 變數的範圍和閉包 44
3.1 全域範圍 44
3.2 詞法範圍 46
3.3 動態範圍 47
3.4 函數範圍 51
3.5 閉包 52
3.5.1 類比閉包 53
3.5.2 使用閉包 57
3.5.3 閉包的抽象 59
3.6 總結 60
第4章 高階函數 62
4.1 以其他函數為參數的函數 62
4.1.1 關於傳遞函數的思考:max、finder和best 63
4.1.2 關於傳遞函數的更多思考:重複、反覆和條件迭代
(iterateUntil) 65
4.2 返回其他函數的函數 67
4.2.1 高階函數捕獲參數 69
4.2.2 捕獲變數的好處 69
4.2.3 防止不存在的函數:fnull 72
4.3 整合:對象校正器 74
4.4 總結 77
第5章 由函數構建函數 78
5.1 函數式組合的精華 78
5.2 柯裡化(Currying) 83
5.2.1 向右柯裡化,還是向左 84
5.2.2 自動柯裡化參數 85
5.2.3 柯裡化流利的API 88
5.2.4 JavaScript柯裡化的缺點 89
5.3 部分應用 89
5.3.1 部分應用一個和兩個已知的參數 91
5.3.2 部分應用任意數量的參數 92
5.3.3 局部應用實戰:前置條件 93
5.4 通過組合端至端的拼接函數 96
5.5 總結 98
第6章 遞迴 100
6.1 自吸收(self-absorbed)函數(調用自己的函數) 100
6.1.1 用遞迴遍曆圖 105
6.1.2 深度優先自遞迴搜尋 106
6.1.3 遞迴和組合函數:Conjoin和Disjoin 108
6.2 相互關聯函數(函數調用其他會再調用回它的函數) 110
6.2.1 使用遞迴深複製 111
6.2.2 遍曆嵌套數組 112
6.3 太多遞迴了 114
6.3.1 產生器 117
6.3.2 蹦床原理以及回調 120
6.4 遞迴是一個底層操作 121
6.5 總結 122
第7章 純度、不變性和更改政策 123
7.1 純度 123
7.1.1 純度和測試之間的關係 124
7.1.2 提取純函數 125
7.1.3 測試不純函數的屬性 126
7.1.4 純度與引用透明度的關係 127
7.1.5 純度和等冪性 129
7.2 不變性 130
7.2.1 如果一棵樹倒在樹林裡,有沒有聲音? 132
7.2.2 不變性與遞迴 133
7.2.3 凍結和複製 134
7.2.4 在函數層級上觀察不變性 136
7.2.5 觀察對象的不變性 137
7.2.6 對象往往是一個低層級的操作 140
7.3 控制變化的政策 141
7.4 總結 144
第8章 基於流的編程 145
8.1 連結 145
8.1.1 惰性鏈 148
8.1.2 Promises 152
8.2 管道 154
8.3 資料流與控制流程 158
8.3.1 找個一般的形狀 161
8.3.2 函數可以簡化建立action 164
8.4 總結 166
第9章 無類編程 167
9.1 資料導向 167
9.2 Mixins 173
9.2.1 修改核心原型 175
9.2.2 類階層 176
9.2.3 改變層級結構 179
9.2.4 用Mixin扁平化層級結構 180
9.2.5 通過Mixin擴充新的語義 185
9.2.6 通過Mixin混合出新的類型 187
9.2.7 方法是低層級操作 188
9.3 }).call(“Finis”); 190
附錄A 更多函數式JavaScript 191
A.1 JavaScript的函數式庫 191
A.1.1 函數式JavaScript 191
A.1.2 Underscore-contrib 192
A.1.3 RxJS 192
A.1.4 Bilby 194
A.1.5 allong.es 195
A.1.6 其他函數式庫 196
A.2 能編譯成JavaScript的函數式語言 196
A.2.1 ClojureScript 196
A.2.2 CoffeeScript 197
A.2.3 Roy 198
A.2.4 Elm 198

javaScript函數式編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.