为什么caddr [(A B C)] = C?

时间:2012-06-09 09:54:45

标签: lisp cons cdr

理想情况下,在LISP中:

caddr[(A B C)] = car[cdr[cdr[(A B C)]]] = car[cdr[(B C)]] = car[C] = Undefined.

但是这本书说答案是C。有人可以解释一下吗?

非常感谢。

2 个答案:

答案 0 :(得分:17)

你的错误是cdr [(B C)]是列表(C),而不是原子C.

然后汽车[(C)]是C。

答案 1 :(得分:6)

(cdr'(b c))是列表(c),而不是原子c,所以表达式变为(car'(c))而不是(car c)

? (cdr '(b c))
(C)

? (car '(c))
C