內容提要
Swift 是一姜朽蒸門有著合適的語言特性來適配函式式編程方法的優秀語言,對國內的大部分開發者來說,Swift 可能是我們第一次真正有機會去接觸和使剃趨臘漏用的一門函式式特性語言。Swift在語法上更加優雅靈活,語言本身也遵循了函式式紋趨葛的設計模式雄照厚遙。
《函式式Swift》是一本引領你進入Swift 函式式編程世界的優秀讀物,它讓更多的中國開發者有機會接觸並了解Swift語言函式式的一面,是廣大程式開發者不可多得的工具書。
目錄
I 函式式Swift 基礎1
第1 章函式式思想2
1.1 案例:Battleship 2
1.2 一等函式7
1.3 類型驅動開發11
1.4 註解11
第2 章案例研究:封裝Core Image 12
2.1 濾鏡類型12
2.2 構建濾鏡13
模糊13
顏色疊層13
2.3 組合濾鏡15
複合函式16
2.4 理論背景:柯里化17
2.5 討論18
第3 章Map、Filter 和Reduce 20
3.1 泛型介紹20
頂層函式和擴展24
3.2 Filter 24
3.3 Reduce 26
3.4 實際運用29
3.5 泛型和Any 類型31
3.6 注釋32
第4 章可選值34
4.1 案例研究:字典34
4.2 玩轉可選值37
可選值鏈37
分支上的可選值39
可選映射40
再談可選綁定41
4.3 為什麼使用可選值43
第5 章案例研究:QuickCheck 47
5.1 構建QuickCheck 49
生成隨機數49
實現check 函式51
5.2 縮小範圍53
反覆縮小範圍54
5.3 隨機數組55
5.4 使用QuickCheck 58
5.5 展望59
第6 章不可變性的價值60
6.1 變數和引用60
6.2 值類型與引用類型61
結構體與類:究竟是否可變63
Objective-C 64
6.3 討論65
第7 章枚舉68
7.1 關於枚舉68
7.2 關聯值71
7.3 添加泛型72
7.4 Swift中的錯誤處理74
7.5 再聊聊可選值75
7.6 數據類型中的代數學76
7.7 為什麼使用枚舉78
第8 章純函式式數據結構79
8.1 二叉搜尋樹79
8.2 基於字典樹的自動補全85
字元串字典樹91
8.3 討論93
第9 章案例研究:圖表94
9.1 繪製正方形和圓形94
9.2 核心數據結構97
9.3 計算與繪製99
9.4 創建視圖與PDF 105
9.5 額外的組合運算元106
9.6 討論107
II 函式式Swift 進階109
第10 章生成器和序列110
10.1 生棗嚷詢成器110
10.2 序列115
10.3 案例研究:遍歷二叉樹118
10.4 案例研究:最佳化QuickCheck 的範圍收縮119
函式式Swift xi
10.5 不止是Map 與Filter 123
第11 章案例研究:慨祝微解析器組合運算元127
11.1 核心部分127
11.2 選擇131
11.3 順序解析131
改進133
11.4 便利組合運算元138
11.5 一個簡單的計算器143
第12 章案例研究:構建一個表格套用148
12.1 示例代碼148
12.2 解析器149
符號化149
解析153
12.3 求值器158
12.4 GUI 163
數據源163
代理165
視窗控制器165
第13 章函子、適用函子與單子167
13.1 函子167
13.2 適用函子169
13.3 單子172
13.4 討論174
第14 章尾聲176
14.1 拓展閱讀177
14.2 結束辣語178
參考文獻179
7.3 添加泛型72
7.4 Swift中的錯誤處理74
7.5 再聊聊可選值75
7.6 數據類型中的代數學76
7.7 為什麼使用枚舉78
第8 章純函式式數據結構79
8.1 二叉搜尋樹79
8.2 基於字典樹的自動補全85
字元串字典樹91
8.3 討論93
第9 章案例研究:圖表94
9.1 繪製正方形和圓形94
9.2 核心數據結構97
9.3 計算與繪製99
9.4 創建視圖與PDF 105
9.5 額外的組合運算元106
9.6 討論107
II 函式式Swift 進階109
第10 章生成器和序列110
10.1 生成器110
10.2 序列115
10.3 案例研究:遍歷二叉樹118
10.4 案例研究:最佳化QuickCheck 的範圍收縮119
函式式Swift xi
10.5 不止是Map 與Filter 123
第11 章案例研究:解析器組合運算元127
11.1 核心部分127
11.2 選擇131
11.3 順序解析131
改進133
11.4 便利組合運算元138
11.5 一個簡單的計算器143
第12 章案例研究:構建一個表格套用148
12.1 示例代碼148
12.2 解析器149
符號化149
解析153
12.3 求值器158
12.4 GUI 163
數據源163
代理165
視窗控制器165
第13 章函子、適用函子與單子167
13.1 函子167
13.2 適用函子169
13.3 單子172
13.4 討論174
第14 章尾聲176
14.1 拓展閱讀177
14.2 結語178
參考文獻179