-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
深入C#函數式編程 版權信息
- ISBN:9787302680154
- 條形碼:9787302680154 ; 978-7-302-68015-4
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
深入C#函數式編程 本書特色
經過數十年的低調發展,函數式編程終于迎來了它的春天。它以簡單明了、通俗易懂的代碼支持異步、并發處理,使得函數式編程的一些精華逐漸融入到傳統的面向對象語言之中,如C#語言和Java語言。《深入C#函數式編程》深入淺出,為廣大C#程序員揭示了如何巧用函數式編程的特性,而這并不需要重新學習一門全新的語言。
C#語言和F#語言共享著同一個運行時環境,因此在C#語言中也能運用大部分F#的函數式特性。《深入C#函數式編程》詳細闡述了如何在C#語言中快速編寫函數式代碼,無需額外安裝依賴項或.NET3之后的任何新特性。《深入C#函數式編程》可以幫助讀者深刻理解為何函數式編程的理念能夠立竿見影地提升工作效率。
● 探究函數式編程的內涵及其起源;
● 通過熟悉的語言領略函數式范式的獨特魅力;
● 立刻開始在C#中以函數式方式編寫代碼,擺脫對第三方庫的依賴;
● 編寫出更加穩定、更少出錯、更易于測試的代碼;
● 重新審視C#中那些非傳統的結構方式;
● 深入探討在業務環境中應用函數式C#的實用價值。
深入C#函數式編程 內容簡介
"《深入C#函數式編程》闡述了函數式編程的歷史背景、基本概念和實踐,展示了如何借助于 C# 語言和函數式編程來增強代碼的可讀性和可維護性以及提高代碼的質量。書中還探討了 C# 語言中非傳統結構的使用方法以及如何通過函數式編程重構現有的代碼。此外,本書還通過豐富的案例分析了在實際業務場景中應用 C# 函數式編程能帶來哪些實際的好處。 通過本書的閱讀,廣大 C# 程序員——無論是初學者還是有經驗的開發者,都可以從中學到如何巧用函數式編程來顯著提高工作效率和代碼質量。"
深入C#函數式編程深入C#函數式編程 前言
我經常參加開發者大會。從這些會議中,我觀察到函數式編程(functional programming,FP)的討論熱度似乎一年高過一年。許多會議都有一個專門討論函數式編程的分論壇,并且其他演講中多少也會提到這個主題。
函數式編程的重要性正在穩步上升,這背后有哪些原因呢?
原因在于,函數式編程是軟件開發史上*偉大的創新之一。它不僅很酷,還充滿了樂趣。
隨著容器化和無服務器應用等概念的興起,函數式編程不再只是開發者的業余愛好,也不是那種幾年后就被人遺忘的短暫熱潮,而是成為一個能為利益相關者帶來實質性好處的重要概念。
此外,在 .NET 生態系統中,函數式編程的推廣還得益于一些關鍵因素。例如C# 語言的首席設計師馬德斯·托格森,他是函數式編程的忠實擁躉,同時也是將函數式編程引入 .NET 的主要推動者之一。另外,作為 .NET 家族中的函數式編程語言,F# 語言的影響也不容忽視。F# 與 C# 共享同一個運行時環境,所以F# 團隊開發的許多函數式特性往往也會以某種形式集成到 C# 語言中。
深入C#函數式編程 目錄
● 第 1 章 緒論 1
● 第 I 部分 我們已經在做的事 27
● 第 2 章 我們目前能做些什么 29
● 第 3 章 C# 7.0 及后續版本的函數式編程 53
● 第 4 章 函數式代碼:巧干勝過苦干 73
● 第 II 部分 深度學習函數式編程 93
● 第 5 章 高階函數 95
● 第 6 章 可區分聯合 123
● 第 7 章 函數式流程 145
● 第 8 章 柯里化和偏函數 177
● 第 9 章 不定循環 189
● 第 10 章 記憶化 207
● 第 III 部分 走出迷霧 215
● 第 11 章 實用函數式 C# 語言 217
● 第 12 章 NuGet 中的現有函數式編程庫 239
● 第 13 章 火星之旅 253
● 第 14 章 結語 283
詳細目錄
第 1 章 緒論 1
1.1 函數式編程是什么 1
1.2 函數式編程的特性 3
1.2.1 不變性 3
1.2.2 高階函數 3
1.2.3 首選表達式而非語句 5
1.2.4 基于表達式的編程 6
1.2.5 引用透明性 7
1.2.6 遞歸 9
1.2.7 真·遞歸 9
1.2.8 模式匹配 10
1.2.9 無狀態 12
1.3 制作蛋糕 13
1.3.1 命令式蛋糕 13
1.3.2 聲明式蛋糕 14
1.4 函數式編程的起源 15
1.5 還有別的人在用函數式編程嗎 17
1.5.1 純函數式語言 17
1.5.2 首先學習純函數式語言是否值得 18
1.5.3 F# 怎么樣?是否有必要學 19
1.5.4 多范式語言 20
1.6 函數式編程的好處 21
1.6.1 簡潔 21
1.6.2 可測試性 22
1.6.3 健壯性 22
1.6.4 可預測性 22
1.6.5 更好地支持并發 23
1.6.6 降低代碼噪音 24
1.7 函數式編程的*佳應用場景 24
1.8 更適合使用其他范式的場景 25
1.9 函數式編程能應用到何種程度 25
1.10 單子實際上,先不用擔心這個 26
1.11 小結 26
第 I 部分 我們已經在做的事
第 2 章 我們目前能做些什么 29
2.1 開始 29
2.2 編寫**段函數式代碼 30
2.2.1 非函數式的電影查詢示例 30
2.2.2 函數式的電影查詢示例 31
2.3 以結果為導向的編程 33
2.4 可枚舉對象 34
2.5 首選表達式而非語句 38
2.5.1 低調的 Select 38
2.5.2 合而為一:聚合的藝術 42
2.5.3 自定義迭代行為 43
2.6 使代碼不可變 46
2.7 完整的函數式流程 48
2.8 更進一步:提升函數式編程技能 51
2.9 小結 52
第 3 章 C# 7.0 及后續版本的函數式編程 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 只讀結構 62
3.4 Init-Only Setter 64
3.5 記錄類型 65
3.6 可空引用類型 68
3.7 展望未來 70
3.7.1 可區分聯合 70
3.7.2 活動模式 71
3.8 小結 72
第 4 章 函數式代碼:巧干勝過苦干 73
4.1 是時候展現 Func 的魔力了 74
4.1.1 可枚舉對象中的 Func 74
4.1.2 超級簡單的驗證器 75
4.1.3 C# 語言舊版本中的模式匹配 78
4.2 讓字典更有用 82
4.3 對值進行解析 84
4.4 自定義枚舉 86
4.4.1 查詢相鄰元素 86
4.4.2 在滿足條件前持續迭代 89
4.5 小結 91
第 II 部分 深入學習函數式編程
第 5 章 高階函數 95
5.1 問題報告 96
5.2 關于 thunk 99
5.3 鏈式調用函數 102
5.4 分叉組合子 104
5.5 Alt 組合子 106
5.6 組合 108
5.7 關于 Transduce 110
5.8 Tap 函數 112
5.9 try/catch 塊 113
5.10 處理空值 118
5.11 更新可枚舉對象 120
5.12 小結 122
第 6 章 可區分聯合 123
6.1 假日時光 123
6.2 使用可辨識合聯合的旅游團應用 125
6.3 薛定諤的聯合 127
6.4 命名規范 128
6.5 數據庫查詢 131
6.6 發送電子郵件 133
6.7 控制臺輸入 134
6.8 泛型聯合 138
6.9 Maybe 類型 138
6.10 Result 類型 139
6.11 對比 Maybe 和 Result 140
6.12 Either 類型 143
6.13 小結 144
第 7 章 函數式流程 145
7.1 再論 Maybe 類型 145
7.1.1 Maybe 類型和調試 150
7.1.2 對比 Map() 函數和 Bind() 函數 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 結合律 163
7.3 Reader 單子 164
7.4 State 單子 166
7.5 Maybe 單子與 State 單子 168
7.6 示例:你可能已經用過的單子 169
7.6.1 可枚舉對象 169
7.6.2 Task 170
7.7 其他結構 171
7.8 工作示例 173
7.9 小結 175
第 8 章 柯里化和偏函數 177
8.1 柯里化和大型函數 178
8.2 柯里化和高階函數 182
8.3 在 NET 中使用柯里化 183
8.4 偏函數 185
8.5 在 NET 中實現偏函數 186
8.6 小結 187
第 9 章 不定循環 189
9.1 遞歸 192
9.2 什么是 Trampolining 194
9.3 自定義迭代器 197
9.3.1 理解枚舉器的結構 198
9.3.2 實現自定義枚舉器 199
9.3.3 循環次數不定的可枚舉對象 201
9.3.4 使用不定迭代器 204
9.4 小結 206
第 10 章 記憶化 207
10.1 貝肯數 207
10.2 在 C# 語言中實現記憶化 212
10.3 小結 214
第 III 部分 走出迷霧
第 11 章 實用函數式 C# 語言 217
11.1 函數式 C# 語言與性能 217
11.1.1 基線:命令式解決方案 219
11.1.2 性能結果 220
11.1.3 確定循環的解決方案 221
11.1.4 不定循環的解決方案 222
11.2 這一切意味著什么 229
11.3 對函數式 C# 語言的擔憂和疑問 231
11.3.1 函數式代碼應該在代碼庫中占多大比例 231
11.3.2 應該如何構建函數式 C# 語言解決方案 232
11.3.3 如何在不同應用程序之間共享函數式方法 232
11.3.4 這個披薩是你點的嗎 233
11.3.5 如何說服團隊成員也這么做 233
11.3.6 是否應該在解決方案中包含 F# 項目 235
11.3.7 函數式編程能解決所有問題嗎 235
11.3.8 說到 007,你更喜歡康納利、摩爾還是克雷格 236
11.3.9 如何以函數式思維解決問題 236
11.3.10 如果完全不能通過函數式編程風格的代碼實現我想要的高性能,怎么辦 237
11.4 小結 237
第 12 章 NuGet 中的現有函數式編程庫 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 小結 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 小結 251
12.5 F# 編程語言 252
12.6 小結 252
第 13 章 火星之旅 253
13.1 故事 253
13.2 技術細節 254
13.3 創建游戲 256
13.3.1 解決方案 256
13.3.2 通信 257
13.3.3 玩法說明 258
13.3.4 設置物品欄 259
13.3.5 游戲循環 267
13.4 小結 280
第 14 章 結語 283
14.1 讀到這里,你的感受如何 283
14.2 接下來走向何方 284
14.2.1 更多的函數式 C# 語言 284
14.2.2 學習 F# 285
14.2.3 純函數式編程語言 285
14.3 那我呢 286
深入C#函數式編程 作者簡介
西蒙·J.潘特(Simon J. Painter)擁有20年專業開發經驗,對.NET各個版本在各個行業的應用非常熟悉。他活躍于.NET用戶組和行業會議,以演講嘉賓的方式與業內廣大開發人員分享函數式編程和.NET常見開發話題。西蒙與他的妻子和孩子居住在英國。
微軟MVP,自2005年以來,一直深耕于軟件開發領域,使用過.NET的每一個版本。他在很多不同的行業中工作過。日常工作之余,他喜歡參加用戶小組和會議,經常在會上發表函數式編程和.NET相關主題的演講。小時候讀懂父親的Sinclair ZX Spectrum BASIC手冊之后,西蒙就成了一名編程愛好者。除了編程,他還喜歡玩音樂、玩填字游戲、玩《戰斗幻想》以及痛飲咖啡——雖然明知對健康沒有什么好處。目前,他和妻子、女兒生活在英國的一個小鎮上。
- >
我與地壇
- >
唐代進士錄
- >
【精裝繪本】畫給孩子的中國神話
- >
上帝之肋:男人的真實旅程
- >
小考拉的故事-套裝共3冊
- >
二體千字文
- >
月亮與六便士
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)