《C#函数式程序设计 经典编程技术在现代项目中的应用》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(英)斯图姆著;吴文国译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302302346
  • 页数:254 页
图书介绍:本书介绍了函数式编程的基本概念、机制,其与通常意义上的编程机制有何区别,函数式编程的要点,C#语言中针对函数式编程的功能与特色,函数式编程在项目中的应用等。

第Ⅰ部分 函数式程序设计引言 3

第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#函数式程序设计基础 17

第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#实现常用的函数式设计技术 77

第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

第Ⅳ部分 函数式设计的实际应用 203

第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