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

Lisp 为什么caddr[(A B C)]=C?,lisp,cons,cdr,Lisp,Cons,Cdr,理想情况下,在LISP中: caddr[(A B C)] = car[cdr[cdr[(A B C)]]] = car[cdr[(B C)]] = car[C] = Undefined. 但是书上说答案是C。谁能解释一下吗 非常感谢。您的错误是cdr[(B C)]是列表(C),而不是原子C 然后car[(C)]是C。(cdr'(bc))是列表(C),而不是原子C,因此表达式变成(car'(C))而不是(car C) ? (cdr '(b c)) (C) ? (car '(c)) C

理想情况下,在LISP中:

caddr[(A B C)] = car[cdr[cdr[(A B C)]]] = car[cdr[(B C)]] = car[C] = Undefined.
但是书上说答案是
C
。谁能解释一下吗

非常感谢。

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

然后car[(C)]是C。

(cdr'(bc))是列表(C),而不是原子C,因此表达式变成(car'(C))而不是(car C)

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

? (car '(c))
C