// // So we accidentally created a monster: // >(cons 'cat1 '(cons 'cat2 nil ) ) (CAT1 CONS 'CAT2 NIL) >(setq l (cons 'cat1 '(cons 'cat2 nil ) )) (CAT1 CONS 'CAT2 NIL) // Let's dissect it. >(length l) 4 >(cadr l) CONS >(cddr l) ('CAT2 NIL) >(caddr l) 'CAT2 // 'CAT2 is (quote CAT2), i.e., a list of its own, with its own cons cell: >(caaddr l) QUOTE >(caddr l) 'CAT2 >(cdaddr l) (CAT2) >(cadaddr l) Error: Fast links are on: do (si::use-fast-links nil) for debugging Signalled by EVAL. Condition in EVAL [or a callee]: INTERNAL-SIMPLE-UNDEFINED-FUNCTION: Cell error on CADADDR: Undefined function: Broken at EVAL. Type :H for Help. 1 Return to top level. >>1 Top level. // OK then, not all combinations of A and D are available as built-in functions :) >(car (cdaddr l)) CAT2 // Finally, let's get to the NIL, too: >(cdddr l) (NIL) >(cadddr l) NIL