C#函式式程式設計:經典編程技術在現代項目中的套用

C#函式式程式設計:經典編程技術在現代項目中的套用

《C#函式式程式設計:經典編程技術在現代項目中的套用》是2013年1月清華大學出版社出版的圖書,作者是Oliver、Sturm。

基本介紹

  • 中文名:C#函式式程式設計:經典編程技術在現代項目中的套用
  • 作者:Oliver、Sturm
  • 出版社清華大學出版社
  • 出版時間:2013年1月
  • 定價:45 元
  • ISBN:9787302302346
內容簡介,圖書目錄,

內容簡介

本書為C#程式設計提供了一個獨一無二的新方法——即利用函式式編程方法解決開發中的實際問題。作為C#語言的專家和微軟MVP,作者詳細介紹了C#重要的語言功能,論述了在C#里使用函式式方法的理論基礎和實踐過程。本書提供了眾多的不同類型實例,這些實例結合了多個方法解決不同領域裡的問題,既包括了並行計算和高性能計算等複雜的問題,也包括了Web服務和商業邏輯實現等簡單的用例。本書希望幫助程式設計師在C#語言裡找到問題的解決方案,並向讀者介紹C#函式式編程的優點和缺點。本書的主要目的是幫助程式設計師最大限度地利用已知的程式設計技術。

圖書目錄

第Ⅰ部分 函式式程式設計引言
第1章 函式式程式設計簡史 / 3
1.1 函式式程式設計簡介 / 3
1.2 函式式程式設計語言 / 4
1.3 與面向對象程式設計的關係 / 7
1.4 小結 / 7
第2章 函式式程式設計思想在現代項目中的套用 / 9
2.1 控制副作用 / 10
2.2 敏捷開發方法 / 11
2.3 聲明式程式設計 / 11
2.4 函式式程式設計的定向思維 / 11
2.5 用C#實現函式式程式設計的可行性 / 12
2.6 小結 / 13
第Ⅱ部分 C#函式式程式設計基礎第3章 函式、委託和Lambda表達式 / 17
3.1 函式與方法 / 17
3.2 重用函式 / 19
3.3 匿名函式與Lambda表達式 / 22
3.4 擴展方法 / 25
3.5 引用透明 / 27
3.6 小結 / 29
第4章 泛型 / 31
4.1 泛型函式 / 32
4.2 泛型類 / 33
4.3 約束類型 / 35
4.4 其他泛型類型 / 36
4.5 協變與逆變 / 38
4.6 小結 / 41
第5章 惰性列表工具—疊代器 / 43
5.1 什麼是惰性 / 43
5.2 用.NET方法枚舉元素 / 44
5.3 疊代器函式的實現 / 47
5.4 鏈式疊代器 / 51
5.5 小結 / 53
第6章 用閉包封裝數據 / 55
6.1 動態創建函式 / 55
6.2 作用域存在的問題 / 56
6.3 閉包的工作機制 / 56
6.4 小結 / 60
第7章 代碼即數據 / 61
7.1 .NET中的表達式樹 / 62
7.2 分析表達式 / 63
7.3 生成表達式 / 68
7.4 .NET 4.0特性 / 71
7.5 小結 / 73
第Ⅲ部分 用C#實現常用的函式式設計技術第8章 局部套用與部分套用 / 77
8.1 參數的解耦 / 77
8.1.1 手動局部套用 / 78
8.1.2 自動局部套用 / 79
8.1.3 調用局部套用函式 / 81
8.1.4 類上下文 / 81
8.1.5 FCSlib庫的內容 / 84
8.2 調用函式的各部分 / 86
8.3 參數順序的重要性 / 88
8.4 小結 / 89
第9章 惰性求值 / 91
9.1 惰性求值的優點 / 92
9.2 傳遞函式 / 93
9.3 顯式的惰性求值 / 94
9.4 惰性求值方法的比較 / 98
9.4.1 可用性 / 98
9.4.2 效率 / 98
9.5 惰性求值方法的選擇 / 99
9.6 小結 / 99
第10章 快取技術 / 101
10.1 記住以前結果的重要性 / 101
10.2 預計算 / 102
10.3 快取 / 107
10.3.1 深度快取 / 110
10.3.2 快取的幾個考慮因素 / 113
10.4 小結 / 114
第11章 遞歸調用 / 115
11.1 C#中的遞歸 / 115
11.2 尾遞歸 / 117
11.3 累加器傳遞模式 / 119
11.4 後繼傳遞模式 / 120
11.5 間接遞歸 / 123
11.6 小結 / 126
第12章 標準高階函式 / 127
12.1 套用運算:Map / 127
12.2 使用篩選條件:Filter / 128
12.3 累加操作:Fold / 129
12.4 LINQ中的Map、Filter
和Fold / 134
12.5 標準高階函式 / 135
12.6 小結 / 136
第13章 序列 / 137
13.1 何為列表推導 / 137
13.2 用函式方法實現疊代器 / 138
13.3 值域 / 139
13.4 限制 / 141
13.5 小結 / 143
第14章 由函式構建函式 / 145
14.1 組合函式 / 145
14.2 高級的部分套用 / 148
14.3 各種方法的綜合 / 150
14.4 小結 / 154
第15章 可選值 / 155
15.1 空值的含義 / 155
15.2 可選值的實現 / 156
15.3 小結 / 161
第16章 防止數據變化 / 163
16.1 變化不總是件好事 / 163
16.2 錯誤的假定 / 164
16.2.1 靜態數據受歡迎 / 165
16.2.2 深度問題 / 166
16.2.3 克隆 / 167
16.2.4 自動克隆 / 168
16.3 實現不可變容器數據類型 / 172
16.3.1 鍊表 / 172
16.3.2 佇列 / 178
16.3.3 非平衡的二叉樹 / 180
16.3.4 紅黑樹 / 183
16.4 持久數據類型的替代選擇 / 185
16.5 小結 / 186
第17章 單子 / 187
17.1 類型類的概念 / 188
17.2 單子的概念 / 191
17.3 使用抽象的原因 / 191
17.4 Logger單子 / 195
17.5 含糖語法 / 197
17.6 用SelectMany方法建立綁定 / 197
17.7 小結 / 199
第Ⅳ部分 函式式設計的實際套用
第18章 函式式程式設計技術的綜合套用 / 203
18.1 重構 / 204
18.1.1 用Windows Forms UI實現列表篩選 / 204
18.1.2 Mandelbrot分形計算 / 210
18.2 編寫新代碼 / 217
18.2.1 使用靜態方法 / 217
18.2.2 優先考慮匿名函式 / 219
18.2.3 優先考慮高階函式 / 220
18.2.4 優先考慮不可變數據 / 221
18.2.5 注意類中行為的實現 / 222
18.3 尋找可以替代函式式設計的其他方法 / 222
18.3.1 其他需要考慮的問題 / 222
18.3.2 使用已有代碼 / 224
18.4 小結 / 225
第19章 MapReduce模式 / 227
19.1 MapReduce的實現 / 228
19.2 問題的抽象 / 231
19.3 小結 / 233
第20章 函式模組化思想的套用 / 235
20.1 在應用程式中執行SQL代碼 / 235
20.2 用部分套用和預計算重寫函式 / 237
20.3 小結 / 239
第21章 函式式技術在現有項目中的套用 / 241
21.1 .NET Framework / 241
21.2 LINQ / 243
21.2.1 LINQ to Objects / 243
21.2.2 LINQ到查詢後台 / 247
21.2.3 並行化 / 249
21.3 Google MapReduce及其實現 / 250
21.4 NUnit / 252
21.5 小結 / 254

相關詞條

熱門詞條

聯絡我們