6 使用高阶函数处理值
本章介绍
■ 使用元组选项和列表
■ 为类型写高阶函数
■ 在 F# 中使用自动泛型化
■ 组合函数与偏应用
在前面的章节中,我们介绍了最常用的函数值。你已经看到这些值如何被构造,以及如何使用模式匹配来处理它们。像这样显式表示所有逻辑可能是冗长乏味的,特别是如果这个类型具有复杂的结构。
由一个或几个简单值组成的值的类型包括前一章介绍的元组,和第 3 章介绍的列表。一般情况下,元组由几种类型的值组成,每个类型只包含一个值。选项可以包含零或一个值,列表包含任意有限数量的元素。当处理这些组合值时,经常要将某个操作应用于基础值。这样做涉及到周期性和样板任务,把组合值分解到它的组件,在应用操作之后,再重建它。
在本章中,我们将看到如何以更容易的方式处理值。通过写函数来执行此操作,我们从值的基础结构抽象,并且可以是简单的参数化,以执行特定操作,对值的某个部分。我们会看到这种做法比显式使用匹配模式更简明。
我们将首先从技术角度看看高阶和泛型函数,为讨论值处理提供背景。然后,将为到目前为止讨论过的所有值,讨论有关处理函数,并探讨不同种类的值的处理函数之间的关系。