为什么caddr [(ABC)] = C?

nrb*_*nrb 3 lisp cons cdr

理想情况下,在LISP中:

caddr[(A B C)] = car[cdr[cdr[(A B C)]]] = car[cdr[(B C)]] = car[C] = Undefined.
Run Code Online (Sandbox Code Playgroud)

但该书说答案是C.有人可以解释一下吗?

非常感谢.

Ira*_*ter 17

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

然后车[(C)]是C.


use*_*lpa 6

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

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

? (car '(c))
C
Run Code Online (Sandbox Code Playgroud)