这一小节东西并不多,主要是一些帮助理解的实例。不过第一次接触符号数据可能会觉得有点绕(
还是惯例的习题答案
数据抽象导引
见:数据抽象导引
层次性数据和闭包性质
符号数据
先说点别的。
自然语言里,说出你的名字
和说出"你的名字"
表达了两种截然不同的意思。被加上引号的”你的名字”表达的是这个单词本身,而不是它的意义。
引号
回到Scheme,为了描述出符号本身,将符号与符号的意义区分开来,我们就需要一种加引号的能力。
举例来说,如果你想得到表(a b)
,你不能使用(list a b)
,因为这样会构造出a和b的值的表,而不是a和b这两个符号本身的表。
为了得到被引用的a,我们使用(quote a)
这一特殊形式,为了方便简写为'a
。quote
也可用于复合对象,如(quote (a b))
或'(a b)
。
基本过程eq?
可用于判断两个符号参数是否为同一个符号。
三个实例就不在这里赘述了…直接看书吧。
抽象数据的多重表示
带有通用型操作的系统
待续
comments powered by Disqus