《C#函数式程序设计——经典编程技术在现代项目中的应用》介绍函数式程序设计的基本概念,以及如何把这些概念应用到C#语言中。作者斯图姆尽量提供具有实用背景的示例,但是大多数例子只考虑到语言因素。函数式程序设计是一种与代码、算法和程序结构有关的技术—这一点不同于程序的体系结构。当然,它需要与程序的体系结构相兼容。须知,有时很难在太理论化与偏离重点之间做到理想的平衡,但是作者已尽了最大的努力。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | C#函数式程序设计--经典编程技术在现代项目中的应用 |
分类 | |
作者 | (英)斯图姆 |
出版社 | 清华大学出版社 |
下载 | ![]() |
简介 | 编辑推荐 《C#函数式程序设计——经典编程技术在现代项目中的应用》介绍函数式程序设计的基本概念,以及如何把这些概念应用到C#语言中。作者斯图姆尽量提供具有实用背景的示例,但是大多数例子只考虑到语言因素。函数式程序设计是一种与代码、算法和程序结构有关的技术—这一点不同于程序的体系结构。当然,它需要与程序的体系结构相兼容。须知,有时很难在太理论化与偏离重点之间做到理想的平衡,但是作者已尽了最大的努力。 内容推荐 《C#函数式程序设计——经典编程技术在现代项目中的应用》为C#程序设计提供了一个独一无二的新方法——即利用函数式编程方法解决开发中的实际问题。作为C#语言的专家和微软MVP,作者斯图姆详细介绍了C#重要的语言功能,论述了在C#里使用函数式方法的理论基础和实践过程。本书提供了众多的不同类型实例,这些实例结合了多个方法解决不同领域里的问题,既包括了并行计算和高性能计算等复杂的问题,也包括了Web服务和商业逻辑实现等简单的用例。《C#函数式程序设计——经典编程技术在现代项目中的应用》希望帮助程序员在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 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。