2.2层次化数据与闭包属性

2.2层次化数据与闭包属性

正如我们已经看到的,数据对提供一个原生的让我们能够
组装复合数据对象的胶水。图2.2中,显示了一个可视化
数据对的标准方式,在这个例子中,由 (cons 1 2)形成了
一个数据对。在这个表示法中,它被叫做黑盒与指针法,像任何一个
对象都被表示成一个指针指向一个黑盒。 对于一个原生的对象这个黑盒
就是这个对象的表示。例如,一个数字的黑盒表示一个数字。
一个数据对的黑盒实际上有两个黑盒。左边的部分包括了一个指针指向
数据对的头部,右边的部分包含数据对的尾部。

我们已经看到了,cons能被用来组合数字也能用来组合数据对。
你能利用这个事实,作一些练习如2.2,2.3.  作为结果就是
数据对提供了一种统一的构建各种的数据结构的块的方式。
在图2.3中,显示了用数据对组合数字 1,2,3,4的两种方式。

创建数据对的数据对的能力是作为一种表示法的工具的列表结构的重要性的
必不可少的一环。我们称这种能力是cons的闭包属性。在通常情况下,
如果使用相同的操作,使得组合物的结果能被组合起来,
组合数据对象的操作满足了闭包属性。在组合的任何一种方法中闭包是重要的,
因为这允许我们创建一种层次的结构,结构由各个部分组成,每个部分
又由各个部分组成,等等。

从第一章开始,我们已经在处理子程序时对闭包有了必要的应用。 因为除了
最简单的程序都依赖于这样一个事实,一个组合中的元素能被它们本身组合起来。
在这一部分中,我们针对复合数据,看看闭包的效果。我们描述了一些传统的
使用数据对表示序列和树的技术,我们也展示一种以一种特别的方式演示闭包的
图形语言。

猜你喜欢

转载自blog.csdn.net/gggwfn1982/article/details/81435246