Почему caddr[(A B C)] = C?

В идеале в LISP:

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

Но книга говорит, что ответ C, Кто-нибудь может объяснить, пожалуйста?

Большое спасибо.

2 ответа

Ваша ошибка в том, что cdr[(B C)] - это список (C), а не атом C.

Тогда автомобиль [(C)] является C.

(cdr '(b c)) - это список (c), а не атом c, поэтому выражение становится (car '(c)), а не (car c)

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

? (car '(c))
C
Другие вопросы по тегам