1.3 用高层次的函数对抽象进行公式化

1.3 用高层次的函数对抽象进行公式化

我们已经看到的程序,在效应上,抽象是指
独立于数据的对数据的组合性的操作。例如
当我们写  (define (cube x) (* x x x))
我们不是指一个特定的数的立方,而是关于任何一个数的立方。
当然了如果我们不定义这个立方的程序,而是总是写
如下的表达式 (* 3 3 3 )
(* x x x )
(* y y y )
并且根本没有显式的提到 立方这个名称。这让我们
处于一种十分不利的境地,迫使我们总是工作在
计算机语言的提供的最原本的特定的操作上的层面上
(在本例中是乘法)而不是高层次操作的术语的层面上。
我们的程序能够计算立方,但是我们的语言缺乏表达
立方的概念的能力。对于一门强有力的计算机语言,
我们的要求之一是构建抽象的能力。这种抽象的能力是指
通过给一个共同的模式分配一个名称的方式并且然后就能够
直接地工作在这种抽象的术语的层面上。

计算机语言中的过程 提供了这种能力。这也是几乎所有的
主要的编程语言都包含了定义过程的机制的原因。

然而在数值计算的过程中,如果我们限定函数的参数只能是
数字的话,那么在创建抽象的时候将极大地限制了我们的能力。

有许多的程序,它们使用着相同的编程模式的情况是普遍的。
为了作为一个概念来表达这种模式,我们将需要构建这种函数,
它能够以函数名为形式参数,并以函数名作为返回值。
这种能够操纵函数的函数,我们称之为高层次的函数。

这部分,就展示了高层次的函数怎么成为一个强有力的
抽象机制的。它极大的增强了我们的编程语言的表达力。

猜你喜欢

转载自blog.csdn.net/gggwfn1982/article/details/81412221
1.3