图书介绍

C#与F#编程实践PDF|Epub|txt|kindle电子书版本网盘下载

C#与F#编程实践
  • (捷克)佩特里切克,(英)斯基特著;贾洪峰译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302268901
  • 出版时间:2011
  • 标注页数:547页
  • 文件大小:236MB
  • 文件页数:573页
  • 主题词:程序语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C#与F#编程实践PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 学习函数式思维方式3

第1章 不同的思维方式3

1.1 什么是函数式编程4

1.2 通向现实世界函数式编程的途径6

1.2.1 函数式语言6

1.2.2 .NET平台上的函数式编程7

1.3 用函数式编程提高生产效率7

1.3.1 函数式范例8

1.3.2 声明性编程风格8

1.3.3 理解程序所做的工作10

1.3.4 并发友好的应用编程11

1.3.5 函数式风格如何塑造代码11

1.4 函数式编程举例13

1.4.1 使用声明性风格表明目的13

1.4.2 理解使用不可变性的代码18

1.4.3 编写高效的并行程序21

1.5 介绍F#23

1.5.1 F#中的Hello world程序24

1.5.2 从简单到现实世界25

1.6 小结29

第2章 函数式编程的核心概念30

2.1 函数式编程的基础31

2.2 函数式程序的求值33

2.2.1 处理不可变值33

2.2.2 使用不可变数据结构35

2.2.3 使用递归改变程序状态36

2.2.4 使用表达式而不是语句37

2.2.5 计算式运算38

2.3 编写声明性代码41

2.3.1 以函数为值41

2.3.2 高阶函数43

2.4 函数式类型和值46

2.4.1 C#和F#中的类型推断47

2.4.2 可区分联合类型简介49

2.4.3 模式匹配50

2.4.4 编译时程序检查53

2.5 小结55

第3章 F#和C#中的元组、列表与函数56

3.1 值和函数声明57

3.1.1 值声明与作用域57

3.1.2 函数声明59

3.1.3 声明可变值61

3.2 使用不可变数据结构62

3.2.1 元组类型介绍62

3.2.2 在C#中实现元组类型65

3.2.3 用元组进行计算67

3.2.4 对元组使用模式匹配68

3.3 列表和递归70

3.3.1 递归计算71

3.3.2 函数式列表简介72

3.3.3 C#中的函数式列表76

3.3.4 函数式列表处理77

3.4 将函数用作值79

3.4.1 处理数值列表80

3.4.2 参数化函数的好处83

3.5 小结84

第4章 F#与.NET库应用实例85

4.1 用F#绘制饼图85

4.2 在FSI中编写和测试代码87

4.2.1 加载和解析数据87

4.2.2 用数据进行计算90

4.3 创建一个控制台应用程序93

4.4 创建一个Windows Forms应用程序96

4.4.1 创建用户界面97

4.4.2 绘制图片100

4.4.3 创建Windows应用程序106

4.5 小结8

第Ⅱ部分 基本函数式技巧111

第5章 在局部使用函数式值111

5.1 值是什么112

5.1.1 基元类型、值类型和对象112

5.1.2 识别值和数据112

5.2 多个值113

5.2.1 F#和C#中的多个值113

5.2.2 元组类型和值构造器115

5.2.3 以组合方式使用元组117

5.3 备选值118

5.3.1 F#中的可区分联合120

5.3.2 处理备选内容121

5.3.3 添加类型还是函数123

5.3.4 使用F#中的option类型125

5.4 泛型值127

5.4.1 在C#中实现option类型128

5.4.2 F#中的泛型option类型131

5.4.3 对值的类型推断133

5.4.4 编写泛型函数135

5.5 函数性值136

5.5.1 lambda函数139

5.5.2 函数类型142

5.5.3 多参数函数144

5.6 小结148

第6章 使用高阶函数处理值149

6.1 泛型高阶函数150

6.1.1 用F#语言编写泛型函数151

6.1.2 自定义运算符151

6.2 处理元组154

6.2.1 使用函数处理元组155

6.2.2 C#中处理元组的方法157

6.3 处理日程安排158

6.3.1 日程安排列表的处理160

6.3.2 用C#处理日程安排161

6.4 处理option类型162

6.4.1 使用map函数163

6.4.2 使用bind函数163

6.4.3 逐步对示例输入求值165

6.4.4 为option类型实现操作167

6.5 处理函数168

6.5.1 函数组合169

6.5.2 C#中的函数组合171

6.6 类型推断172

6.6.1 F#中对函数调用的类型推断173

6.6.2 自动泛化173

6.7 处理列表175

6.7.1 在F#中实现列表175

6.7.2 理解列表函数的签名176

6.7.3 实现列表函数180

6.8 公用处理语言183

6.8.1 映射、筛选和折叠183

6.8.2 对列表的bind操作185

6.9 小结186

第7章 设计以数据为中心的程序187

7.1 函数式数据结构188

7.1.1 使用F#记录类型189

7.1.2 C#中的函数式数据结构191

7.2 平面文档表示法192

7.2.1 绘制元素194

7.2.2 在窗体上显示绘制的内容195

7.3 结构化文档表示法198

7.3.1 转换表示法199

7.3.2 XML文档表示法202

7.4 编写操作206

7.4.1 使用map操作进行更新206

7.4.2 使用聚合操作进行计算209

7.5 面向对象式表示法211

7.5.1 用结构型模式表示数据211

7.5.2 使用访问者模式添加函数214

7.6 小结216

第8章 设计以行为为中心的程序217

8.1 使用行为集合218

8.1.1 将行为表示为对象218

8.1.2 在C#中将行为表示为函数219

8.1.3 在C#中使用函数集合221

8.1.4 在F#中使用函数列表222

8.2 用于处理函数的术语224

8.2.1 策略设计模式224

8.2.2 命令设计模式225

8.2.3 在F#中使用闭包来采集状态228

8.3 处理组合行为233

8.3.1 函数的记录233

8.3.2 构造组合行为235

8.3.3 F#代码的进一步演进236

8.4 结合数据与行为238

8.4.1 决策树238

8.4.2 F#中的决策树239

8.4.3 C#中的决策树242

8.5 小结245

第Ⅲ部分 高级F#编程技术249

第9章 将值转换为带有成员的F#对象类型249

9.1 改进以数据为中心的应用程序249

9.1.1 向F#类型添加成员251

9.1.2 使用类型扩展追加成员254

9.2 改进以数据为中心的应用程序256

9.2.1 使用函数记录257

9.2.2 使用接口对象类型258

9.3 处理.NET接口260

9.3.1 使用.NET集合260

9.3.2 使用IDisposable清除资源262

9.4 具体对象类型265

9.4.1 函数式类和命令式类267

9.4.2 实现接口和转换269

9.5 从C#中使用F#车273

9.5.1 处理记录和成员274

9.5.2 处理值和委托276

9.6 小结278

第10章 数据结构的效率279

10.1 优化函数279

10.1.1 用尾递归避免堆栈溢出280

10.1.2 使用记忆化缓存结果285

10.2 处理大型集合291

10.2.1 再次用尾递归避免堆栈溢出291

10.2.2 高效地处理列表294

10.2.3 处理数组296

10.3 “延续”简介301

10.3.1 树处理的困难所在301

10.3.2 使用“延续”编写代码303

10.4 小结306

第11章 函数式程序的重构与测试307

11.1 重构函数式程序308

11.1.1 重复使用公共代码块308

11.1.2 跟踪相关性和副作用311

11.2 测试函数式代码314

11.2.1 从交互式外壳程序到单元测试315

11.2.2 编写利用结构等同性的测试319

11.2.3 测试组合功能322

11.3 重构计算顺序323

11.3.1 不同的计算策略324

11.3.2 计算策略对比325

11.3.3 使用函数来模拟延迟计算326

11.3.4 F#中的延迟值328

11.3.5 为C#实现延迟值330

11.4 在实践中使用延迟值332

11.4.1 无限列表332

11.4.2 缓存图片浏览器中的值335

11.5 小结338

第12章 序列表达式和备选工作流339

12.1 生成序列340

12.1.1 使用高阶函数340

12.1.2 使用C#中的迭代器341

12.1.3 使用F#序列表达式342

12.2 掌握序列表达式345

12.2.1 递归序列表达式345

12.2.2 使用无限序列347

12.3 处理序列352

12.3.1 用迭代器转换序列352

12.3.2 筛选与投影353

12.3.3 平展投影356

12.4 介绍备选工作流361

12.4.1 自定义查询表达式361

12.4.2 自定义F#语法363

12.5 自定义计算中的第一步365

12.5.1 声明计算类型365

12.5.2 编写计算366

12.5.3 在F#中实现一个计算构造器367

12.5.4 在C#中实现查询运算符369

12.6 为选项实现计算表达式371

12.7 用记录来补充计算373

12.7.1 创建记录计算374

12.7.2 创建记录计算375

12.7.3 使用计算表达式进行重构377

12.8 小结378

第Ⅳ部分 应用函数式编程381

第13章 异步与数据驱动编程381

13.1 异步工作流382

13.1.1 异步工作流为什么重要382

13.1.2 异步下载网页383

13.1.3 理解工作流的工作原理387

13.1.4 创建基元工作流389

13.2 连接到世界银行391

13.2.1 访问世界银行的数据391

13.2.2 从失败中恢复393

13.3 浏览和获取数据395

13.3.1 实出XML helper函数395

13.3.2 提取区域代码397

13.3.3 获取指标399

13.4 从数据中收集信息402

13.4.1 读取值402

13.4.2 使用度量单位设置数据格式403

13.4.3 收集有关地区的统计数字407

13.5 使用Excel实现数据可视化408

13.5.1 将数据写入Excel409

13.5.2 在Excel图表中显示数据411

13.6 小结413

第14章 编写并行函数式程序414

14.1 理解不同的并行技术415

14.1.1 并行处理命令式代码的孤岛415

14.1.2 声明性数据并行417

14.1.3 基于任务的并行机制421

14.2 并行运行图形效果426

14.2.1 在F#中计算颜色426

14.2.2 实现和运行颜色滤镜428

14.2.3 设计主应用程序431

14.2.4 创建和运行效果433

14.2.5 实现应用程序的并行化437

14.2.6 实现模糊效果439

14.3 创建并行模拟441

14.3.1 表示模拟世界442

14.3.2 设计模拟操作444

14.3.3 实现helper函数447

14.3.4 实现智能动物与捕食者449

14.3.5 并行运行模拟451

14.4 小结453

第15章 创建可组合函数库455

15.1 可组合设计方法456

15.1.1 由符号组合动画456

15.1.2 为符号赋予含义457

15.1.3 组合值458

15.1.4 组合函数和对象459

15.2 创建动画值463

15.2.1 函数式动画简介463

15.2.2 行为简介464

15.2.3 在C#中创建简单行为466

15.2.4 在F#中创建简单行为468

15.3 编写处理行为的计算469

15.3.1 读取值470

15.3.2 向行为应用函数471

15.3.3 将函数转换为“行为函数”472

15.3.4 在C#中实现提升和map474

15.4 处理图画477

15.4.1 表示图画477

15.4.2 创建和组合图画479

15.5 创建动画483

15.5.1 在F#中实现动画窗体483

15.5.2 使用行为创建动画486

15.5.3 添加动画基元488

15.5.4 创建一个太阳系动画490

15.6 开发经济建模语言493

15.6.1 经济合同建模493

15.6.2 定义基元494

15.6.3 使用建模语言496

15.7 小结498

第16章 开发函数式反应程序499

16.1 使用事件的反应式编程500

16.1.1 事件函数简介501

16.1.2 使用事件和可观察对象502

16.1.3 创建一个简单的反应式应用程序505

16.1.4 使用LINQ进行声明性事件处理507

16.1.5 在F#中声明事件509

16.2 创建反应式动画511

16.2.1 使用switch函数511

16.2.2 实现switch函数513

16.3 使用工作流进行UI编程514

16.3.1 异步等待事件514

16.3.2 绘制矩形517

16.4 在反应式应用程序中存储状态521

16.4.1 安全地处理状态521

16.4.2 创建邮箱处理器521

16.4.3 使用消息进行通信524

16.4.4 封装邮箱处理器528

16.4.5 等待多个事件529

16.5 消息传送并发性531

16.5.1 创建状态机处理器532

16.5.2 并发访问邮箱534

16.6 小结535

附录 展望537

快速参考 函数式编程概念540

快速参考 F#语言构造542

资源544

热门推荐