注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)深入C#函數(shù)式編程

深入C#函數(shù)式編程

深入C#函數(shù)式編程

定 價(jià):¥119.00

作 者: [英] 西蒙·J.潘特(Simon J. Painter)著,周子衿 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302680154 出版時(shí)間: 2025-03-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《深入C#函數(shù)式編程》闡述了函數(shù)式編程的歷史背景、基本概念和實(shí)踐,展示了如何借助于 C# 語言和函數(shù)式編程來增強(qiáng)代碼的可讀性和可維護(hù)性以及提高代碼的質(zhì)量。書中還探討了 C# 語言中非傳統(tǒng)結(jié)構(gòu)的使用方法以及如何通過函數(shù)式編程重構(gòu)現(xiàn)有的代碼。此外,本書還通過豐富的案例分析了在實(shí)際業(yè)務(wù)場景中應(yīng)用 C# 函數(shù)式編程能帶來哪些實(shí)際的好處。通過本書的閱讀,廣大 C# 程序員——無論是初學(xué)者還是有經(jīng)驗(yàn)的開發(fā)者,都可以從中學(xué)到如何巧用函數(shù)式編程來顯著提高工作效率和代碼質(zhì)量。

作者簡介

  西蒙·J.潘特(Simon J. Painter)擁有20年專業(yè)開發(fā)經(jīng)驗(yàn),對.NET各個(gè)版本在各個(gè)行業(yè)的應(yīng)用非常熟悉。他活躍于.NET用戶組和行業(yè)會議,以演講嘉賓的方式與業(yè)內(nèi)廣大開發(fā)人員分享函數(shù)式編程和.NET常見開發(fā)話題。西蒙與他的妻子和孩子居住在英國。微軟MVP,自2005年以來,一直深耕于軟件開發(fā)領(lǐng)域,使用過.NET的每一個(gè)版本。他在很多不同的行業(yè)中工作過。日常工作之余,他喜歡參加用戶小組和會議,經(jīng)常在會上發(fā)表函數(shù)式編程和.NET相關(guān)主題的演講。小時(shí)候讀懂父親的Sinclair ZX Spectrum BASIC手冊之后,西蒙就成了一名編程愛好者。除了編程,他還喜歡玩音樂、玩填字游戲、玩《戰(zhàn)斗幻想》以及痛飲咖啡——雖然明知對健康沒有什么好處。目前,他和妻子、女兒生活在英國的一個(gè)小鎮(zhèn)上。

圖書目錄

● 第 1 章 緒論 1
● 第 I 部分 我們已經(jīng)在做的事 27
● 第 2 章 我們目前能做些什么 29
● 第 3 章 C# 7.0 及后續(xù)版本的函數(shù)式編程 53
● 第 4 章 函數(shù)式代碼:巧干勝過苦干 73
● 第 II 部分 深度學(xué)習(xí)函數(shù)式編程 93
● 第 5 章 高階函數(shù) 95
● 第 6 章 可區(qū)分聯(lián)合 123
● 第 7 章 函數(shù)式流程 145
● 第 8 章 柯里化和偏函數(shù) 177
● 第 9 章 不定循環(huán) 189
● 第 10 章 記憶化 207
● 第 III 部分 走出迷霧 215
● 第 11 章 實(shí)用函數(shù)式 C# 語言 217
● 第 12 章 NuGet 中的現(xiàn)有函數(shù)式編程庫 239
● 第 13 章 火星之旅 253
● 第 14 章 結(jié)語 283
詳細(xì)目錄
第 1 章 緒論   1
1.1 函數(shù)式編程是什么       1
1.2 函數(shù)式編程的特性       3
1.2.1 不變性           3
1.2.2 高階函數(shù)       3
1.2.3 首選表達(dá)式而非語句          5
1.2.4 基于表達(dá)式的編程          6
1.2.5 引用透明性       7
1.2.6 遞歸     9
1.2.7 真·遞歸       9
1.2.8 模式匹配         10
1.2.9 無狀態(tài)         12
1.3 制作蛋糕      13
1.3.1 命令式蛋糕     13
1.3.2 聲明式蛋糕     14
1.4 函數(shù)式編程的起源     15
1.5 還有別的人在用函數(shù)式編程嗎      17
1.5.1 純函數(shù)式語言     17
1.5.2 首先學(xué)習(xí)純函數(shù)式語言是否值得   18
1.5.3 F# 怎么樣?是否有必要學(xué)          19
1.5.4 多范式語言     20
1.6 函數(shù)式編程的好處     21
1.6.1 簡潔         21
1.6.2 可測試性         22
1.6.3 健壯性         22
1.6.4 可預(yù)測性         22
1.6.5 更好地支持并發(fā)            23
1.6.6 降低代碼噪音     24
1.7 函數(shù)式編程的最佳應(yīng)用場景    24
1.8 更適合使用其他范式的場景    25
1.9 函數(shù)式編程能應(yīng)用到何種程度      25
1.10 單子實(shí)際上,先不用擔(dān)心這個(gè)        26
1.11 小結(jié)        26
第 I 部分 我們已經(jīng)在做的事
第 2 章 我們目前能做些什么    29
2.1 開始      29
2.2 編寫第一段函數(shù)式代碼        30
2.2.1 非函數(shù)式的電影查詢示例    30
2.2.2 函數(shù)式的電影查詢示例        31
2.3 以結(jié)果為導(dǎo)向的編程     33
2.4 可枚舉對象  34
2.5 首選表達(dá)式而非語句     38
2.5.1 低調(diào)的 Select      38
2.5.2 合而為一:聚合的藝術(shù)        42
2.5.3 自定義迭代行為            43
2.6 使代碼不可變         46
2.7 完整的函數(shù)式流程     48
2.8 更進(jìn)一步:提升函數(shù)式編程技能      51
2.9 小結(jié)      52
第 3 章 C# 7.0 及后續(xù)版本的函數(shù)式編程      53
3.1 元組      53
3.2 模式匹配      54
3.2.1 銀行賬戶的過程式解決方案       54
3.2.2 C# 7.0 中的模式匹配        57
3.2.3 C# 8.0 中的模式匹配        58
3.2.4 C# 9.0 中的模式匹配        60
3.2.5 C# 10.0 中的模式匹配      60
3.2.6 C# 11.0 中的模式匹配      61
3.3 只讀結(jié)構(gòu)      62
3.4 Init-Only Setter        64
3.5 記錄類型      65
3.6 可空引用類型         68
3.7 展望未來      70
3.7.1 可區(qū)分聯(lián)合     70
3.7.2 活動模式         71
3.8 小結(jié)      72
第 4 章 函數(shù)式代碼:巧干勝過苦干      73
4.1 是時(shí)候展現(xiàn) Func 的魔力了      74
4.1.1 可枚舉對象中的 Func       74
4.1.2 超級簡單的驗(yàn)證器        75
4.1.3 C# 語言舊版本中的模式匹配     78
4.2 讓字典更有用         82
4.3 對值進(jìn)行解析         84
4.4 自定義枚舉  86
4.4.1 查詢相鄰元素     86
4.4.2 在滿足條件前持續(xù)迭代        89
4.5 小結(jié)      91
第 II 部分 深入學(xué)習(xí)函數(shù)式編程
第 5 章 高階函數(shù)         95
5.1 問題報(bào)告      96
5.2 關(guān)于 thunk    99
5.3 鏈?zhǔn)秸{(diào)用函數(shù)       102
5.4 分叉組合子           104
5.5 Alt 組合子  106
5.6 組合        108
5.7 關(guān)于 Transduce          110
5.8 Tap 函數(shù)     112
5.9 try/catch 塊        113
5.10 處理空值  118
5.11 更新可枚舉對象     120
5.12 小結(jié)      122
第 6 章 可區(qū)分聯(lián)合       123
6.1 假日時(shí)光    123
6.2 使用可辨識合聯(lián)合的旅游團(tuán)應(yīng)用    125
6.3 薛定諤的聯(lián)合       127
6.4 命名規(guī)范    128
6.5 數(shù)據(jù)庫查詢           131
6.6 發(fā)送電子郵件       133
6.7 控制臺輸入           134
6.8 泛型聯(lián)合    138
6.9 Maybe 類型           138
6.10 Result 類型          139
6.11 對比 Maybe 和 Result        140
6.12 Either 類型          143
6.13 小結(jié)      144
第 7 章 函數(shù)式流程       145
7.1 再論 Maybe 類型      145
7.1.1 Maybe 類型和調(diào)試         150
7.1.2 對比 Map() 函數(shù)和 Bind() 函數(shù)   151
7.1.3 Maybe 類型和基元類型     152
7.1.4 Maybe 對象和日志記錄     154
7.1.5 Maybe 對象和 Async      158
7.1.6 Maybe 對象的嵌套         159
7.2 定律        162
7.2.1 左恒等律      162
7.2.2 右恒等律      162
7.2.3 結(jié)合律      163
7.3 Reader 單子           164
7.4 State 單子   166
7.5 Maybe 單子與 State 單子    168
7.6 示例:你可能已經(jīng)用過的單子        169
7.6.1 可枚舉對象      169
7.6.2 Task           170
7.7 其他結(jié)構(gòu)    171
7.8 工作示例    173
7.9 小結(jié)        175
第 8 章 柯里化和偏函數(shù)      177
8.1 柯里化和大型函數(shù)       178
8.2 柯里化和高階函數(shù)       182
8.3 在  NET 中使用柯里化       183
8.4 偏函數(shù)    185
8.5 在  NET 中實(shí)現(xiàn)偏函數(shù)       186
8.6 小結(jié)        187
第 9 章 不定循環(huán)       189
9.1 遞歸        192
9.2 什么是 Trampolining    194
9.3 自定義迭代器       197
9.3.1 理解枚舉器的結(jié)構(gòu)         198
9.3.2 實(shí)現(xiàn)自定義枚舉器         199
9.3.3 循環(huán)次數(shù)不定的可枚舉對象    201
9.3.4 使用不定迭代器         204
9.4 小結(jié)        206
第 10 章 記憶化        207
10.1 貝肯數(shù)      207
10.2 在 C# 語言中實(shí)現(xiàn)記憶化     212
10.3 小結(jié)      214
第 III 部分 走出迷霧
第 11 章 實(shí)用函數(shù)式 C# 語言           217
11.1 函數(shù)式 C# 語言與性能      217
11.1.1 基線:命令式解決方案         219
11.1.2 性能結(jié)果       220
11.1.3 確定循環(huán)的解決方案      221
11.1.4 不定循環(huán)的解決方案      222
11.2 這一切意味著什么     229
11.3 對函數(shù)式 C# 語言的擔(dān)憂和疑問        231
11.3.1 函數(shù)式代碼應(yīng)該在代碼庫中占多大比例        231
11.3.2 應(yīng)該如何構(gòu)建函數(shù)式 C# 語言解決方案         232
11.3.3 如何在不同應(yīng)用程序之間共享函數(shù)式方法        232
11.3.4 這個(gè)披薩是你點(diǎn)的嗎      233
11.3.5 如何說服團(tuán)隊(duì)成員也這么做     233
11.3.6 是否應(yīng)該在解決方案中包含 F# 項(xiàng)目     235
11.3.7 函數(shù)式編程能解決所有問題嗎       235
11.3.8 說到 007,你更喜歡康納利、摩爾還是克雷格        236
11.3.9 如何以函數(shù)式思維解決問題     236
11.3.10 如果完全不能通過函數(shù)式編程風(fēng)格的代碼實(shí)現(xiàn)我想要的高性能,怎么辦     237
11.4 小結(jié)      237
第 12 章 NuGet 中的現(xiàn)有函數(shù)式編程庫      239
12.1 OneOf 庫  240
12.2 LanguageExt 庫       242
12.2.1 Option        243
12.2.2 Either         244
12.2.3 記憶化       245
12.2.4 Reader       246
12.2.5 State       246
12.2.6 LanguageExt 小結(jié)       247
12.3 Functional.Maybe 庫   247
12.4 CsharpFunctionalExtensions 庫       249
12.4.1 Maybe 單子   249
12.4.2 Result         250
12.4.3 Fluent Assertions          251
12.4.4 CSharpFunctionalExtensions 小結(jié)       251
12.5 F# 編程語言        252
12.6 小結(jié)      252
第 13 章 火星之旅        253
13.1 故事      253
13.2 技術(shù)細(xì)節(jié)  254
13.3 創(chuàng)建游戲  256
13.3.1 解決方案       256
13.3.2 通信       257
13.3.3 玩法說明       258
13.3.4 設(shè)置物品欄   259
13.3.5 游戲循環(huán)       267
13.4 小結(jié)      280
第 14 章 結(jié)語        283
14.1 讀到這里,你的感受如何    283
14.2 接下來走向何方     284
14.2.1 更多的函數(shù)式 C# 語言   284
14.2.2 學(xué)習(xí) F#      285
14.2.3 純函數(shù)式編程語言      285
14.3 那我呢      286

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號