您好,欢迎来到聚文网。 登录 免费注册
深入C#函数式编程

深入C#函数式编程

  • 字数: 417
  • 出版社: 清华大学
  • 作者: (英)西蒙·J.潘特|译者:周子衿
  • 商品条码: 9787302680154
  • 适读年龄: 12+
  • 版次: 1
  • 开本: 16开
  • 页数: 286
  • 出版年份: 2025
  • 印次: 1
定价:¥119 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
\\\"《深入C#函数式编程》阐述了函数式编程的历史背景、基本概念和实践,展示了如何借助于 C# 语言和函数式编程来增强代码的可读性和可维护性以及提高代码的质量。书中还探讨了 C# 语言中非传统结构的使用方法以及如何通过函数式编程重构现有的代码。此外,本书还通过丰富的案例分析了在实际业务场景中应用 C# 函数式编程能带来哪些实际的好处。 通过本书的阅读,广大 C# 程序员——无论是初学者还是有经验的开发者,都可以从中学到如何巧用函数式编程来显著提高工作效率和代码质量。\\\"
作者简介
\"西蒙·J.潘特(Simon J. Painter)拥有20年专业开发经验,对.NET各个版本在各个行业的应用非常熟悉。他活跃于.NET用户组和行业会议,以演讲嘉宾的方式与业内广大开发人员分享函数式编程和.NET常见开发话题。西蒙与他的妻子和孩子居住在英国。 微软MVP,自2005年以来,一直深耕于软件开发领域,使用过.NET的每一个版本。他在很多不同的行业中工作过。日常工作之余,他喜欢参加用户小组和会议,经常在会上发表函数式编程和.NET相关主题的演讲。小时候读懂父亲的Sinclair ZX Spectrum BASIC手册之后,西蒙就成了一名编程爱好者。除了编程,他还喜欢玩音乐、玩填字游戏、玩《战斗幻想》以及痛饮咖啡——虽然明知对健康没有什么好处。目前,他和妻子、女儿生活在英国的一个小镇上。\"
目录
简明目录 ● 第 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

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网