(a (b c) d) 也是一棵由图 3.8 所代表的树。 (如果你逆时针旋转 45 度,你会发现跟图 3.3 一模一样)

    Common Lisp 有几个内置的操作树的函数。举例来说, copy-tree 接受一个树,并返回一份副本。它可以这么定义:

    把这跟 36 页的 copy-list 比较一下; copy-tree 复制每一个 Cons 对象的 与 cdr ,而 copy-list 仅复制 cdr

    而我们想要把各处的 x 都换成 y 。调用 是不行的,它只能替换序列 (sequence)中的元素:

    这个调用是无效的,因为列表有三个元素,没有一个元素是 x 。我们在这所需要的是 subst ,它替换树之中的元素。

    操作树的函数通常有这种形式, car 与 同时做递归。这种函数被称之为是 双重递归 (doubly recursive)。