在scheme中的数据结构pair和list是用来表示tree和list的。 数据结构
pair就是每一个节点都分红两个叉,最后整棵树的形状能够是任意的,好比说左边“繁茂”一点,或者右边“繁茂”一点均可以; 链表
list是特殊的pair,(链表是特殊的树,很合理嘛),每一个节点也是分红两个叉,左成员是一个“树叶”,右成员是另外一个list, 数据
最后一个分叉比较特殊,其左成员也是普通”树叶“,但右成员是空表; scheme
看几个普通pair的例子: co
(cons 1 (cons 2 3))
(cons (cons 1 2) 3)
(cons 1 (cons 2 (cons 3 '())))
其中只有第三个pair属于list,由于它知足如下两个条件:
1) pair在每一层次上,右成员都是一个pair;
2)最后一个层次上,右成员是空表