若要表示的数据是一个函数集合,那么我们可以用具体应用时的行为来表示它。在这种情形下,我们可以遵循以下规则来提取接口和过程化的表示:
- 找出用例(client code)中能够求值并返回所需类型的lambda表达式。为每个这样的lambda表达式创建一个构造过程。构造过程的参数将是此lambda表达式的自由变量。将用例中的每个这样的lambda表达式替换成对相应的构造器的调用。
- 定义一个类似于前面的apply-env的apply-过程。找出用例的每个将此类型的值当作参数的过程,包括构造过程的函数体。将每个这样的应用替换成apply-过程的调用。