12.8 第十二章小结
来源:互联网 发布:工作室网站源码 编辑:程序博客网 时间:2024/06/04 17:43
12.8 第十二章小结
在本章的第一部分,我们讨论了 .NET 序列,用 IEnumerable<T> 类型表示,在 F# 中还称为 seq <'a>。我们开始讨论生成序列的技术,包括高阶函数、迭代器和 F# 序列表达式。我们知道,序列是延迟的,能够创建无穷序列。我们还看到了一个实际的示例,使用颜色的无穷的序列,把绘制图表的代码,与用于在图表中生成颜色的代码分离开来。
接下来,我们讨论了如何处理序列。我们写了相同的代码,使用了高阶函数,对应的 LINQ 的扩展方法,C# 的查询表达式,和 F# 的序列表达式。这有助于我们理解查询和序列表达式是如何工作的。一个最重要的操作是绑定(bind)操作,它在 F# 中以 collect 函数出现,在 LINQ 中是 SelectMany 方法。
许多类型都有同样的概念,单子操作,我们发现,创建 F# 计算表达式,看起来就像序列表达式,只是处理不同的类型。我们提供两个实现计算表达式的实际例子,处理选项类型,和在执行过程中保存日志消息。同样的概念可以用 C# 实现,并有所扩展,把计算表达式替换成查询表达式。F# 语言功能更通用的,而 C# 查询表达式更适合查询。
使用计算表达式最难的地方,也许是确定什么时候设计和实现,最有利。在下一章,我们会讨论使用 F# 计算表达式中的最重要部分,能够进行 I/O 操作,而不会阻塞调用者的线程,这对于执行慢速 I/O,比如,从互联网读数据,是特别重要的。再后,我们将会看到,F# 能够以交互方式和可视化处理数据,这对于今天联系日益紧密的世界,成为非常重要的任务。
0 0
- 12.8 第十二章小结
- 12.8 第十二章小结
- 【C++】《C++标准程序库》小结第十二章-数值
- 第十二天 ADO.NET小结
- 第十二章
- 第十二章
- 第十二章
- 第十二章
- 第十二章
- 第十二章..
- 第十二章
- 第十二章
- 第十二章
- 第十二章
- linux程序设计——多线程小结以及待完成的小游戏(第十二章)
- JHTP小结_第十二章_GUI组件(上篇)-Part 1
- JHTP小结_第十二章_GUI组件(上篇)-Part 2
- 《Android开发艺术探索》第十二章Bitmap加载和Cache小结
- android之ViewStub解析
- android之gson解析
- Python3安装motionless-1.1后报错的修正
- [leetcode] Symmetric Tree
- Site Analysis Note 3
- 12.8 第十二章小结
- 【重要】股票收益互换
- jQueryUI web前段展示的几种框架
- 函数声明与定义后加const的含义
- 删除Weblogic域
- PAT 01-2. Maximum Subsequence Sum (25)
- 贪心 活动选择问题 OJ
- Android 4.0的图形硬件加速及绘制技巧
- Android adb常见问题整理