第十三章异步和数据驱动编程
本章介绍
■异步工作流编程
■使用 F# Interactive 浏览数据
■使用度量单位定义类型
■处理与可视化数据
我们首先引述了一次对比尔 · 盖茨的采访,他谈到他感兴趣的编程任务的类型,并描述了编写应用程序的典型情况:
从 web 获取数据,不只是考虑把它当作文本,而且要引入结构,然后… …,尝试不同的数据表现方式,且以交互的方式。… 写很少的代码,可以有自己专门的算法来处理数据。[2008年,盖茨]
这正好说出了我们在这一章所要做的,我们将会看到,F# 语言和交互式控制台就能很好地完成这种任务,我们称这种方法为探索式编程(explorative programming),因为我们的目标是探索巨量的数据,找到收集有用信息的方法。我们将在本章花费大量篇幅,讨论使用 F# Interactive,因为它提供的方法,能够“写很少的代码”,用“专门的算法处理数据”,立即执行,看到结果。
F# 语言和库在许多方面,支持这种类型的编程,我们会看到所有涉及到的重要技术。要获取数据,我们可以使用基于计算表达式的异步工作流,其语法我们在前一章介绍过;然后,我们将看到使用 F# 的类型,在数据中“引入结构”;我们还将使用度量单位,指定特定的值,不仅是浮点数,而且有单位,比如平方公里。
提示
在这一章,我们将使用由世界银行(World Bank)提供的数据。在前半章将详细介绍,如何以适当的格式,获得我们所需要的所有数据。
如果对处理和可视化更有兴趣,可以直接看 13.4 节。不一定按照第一部分所描述的,一步一步从世界银行下载数据,可以直接从本书网站获得所有数据。
最后,我们将讨论“尝试不同的数据表现方式”。特别是,我们将看到如何使用 .NET API 将结构化的数据导出到 Excel,以编程方式把数据呈现为图表。