首页 > 代码库 > 6.9 第六章小结

6.9 第六章小结

6.9 第六章小结

 

这一章,连同第五章一起,我们讨论了函数值。正如在前一章看到的,值对于控制程序流,非常重要,能够以函数方式写代码,函数的参数是值,返回的结果也是值,[因此,函数可以]组合起来。在这一章,我们看到处理值的更简便方法,不直接使用值的结构,而是使用一组在 F# 库中定义的高阶函数值。我们已经知道它们是如何实现的,我们也可以为自己的类型,实现类似的功能。

特别是,我们还讨论了能够对值执行操作的函数,值可以是标准的 F# 类型,比如元组和选项类型,也可以是为表示计划而自定义的类型。学习了使用函数组合,从两个函数构造出新函数,看到所有这些功能,与散应用与管道运算符一起,能够写出优雅和可读性强、处理值的代码。

最后,我们讨论了几个处理列表的函数,观察几个高阶函数对不同类型的相似性。我们看到,映射操作可用于许多不同种类的值,而对于选项类型绑定操作,与处理列表的集合函数有相似性。我们将在第十二章讨论更多这方面的关系。

我们在第五章开始讨论使用值时,强调了局部值与程序数据(local values and program data)之间的区别。在下一章,我们会把注意力转向程序数据,这是表示程序处理的关键信息。例如,这可能是矢量图形编辑器中形状的结构,或在文本编辑器中的文档。在这一章,我们介绍了处理局部值的简便方法,同样的思维也可以用于处理程序数据。当我们讨论列表时,已经这个方向上迈出了一步,因为许多程序是用记录列表来表示数据的。

6.9 第六章小结