我有一个非常奇怪的lisp错误。我正在使用sbcl并编写了以下代码。我只是希望有人可以解释。
(setq x '((1 (x y) (1 2)) (3 (x z) (2 3)) (3 (x y) (1 2)) (4 (x y) (1 2))))
(caddadr x)
给出以下错误消息
评估在#。
上中止 然而,将它写在for中给了我所期待的(car (cddadr x))
(2 3)
只是想知道为什么这是诚实的。
答案 0 :(得分:2)
没有caddadr
这样的功能,这就是原因。
* (fboundp 'caddadr)
NIL
* (fboundp 'cddadr)
T
你刚刚CAR, CDR, CAAR, CADR, CDAR, CDDR, CAAAR, CAADR, CADAR, CADDR, CDAAR, CDADR, CDDAR, CDDDR, CAAAAR, CAAADR, CAADAR, CAADDR, CADAAR, CADADR, CADDAR, CADDDR, CDAAAR, CDAADR, CDADAR, CDADDR, CDDAAR, CDDADR, CDDDAR and CDDDDR
。请参阅:http://clhs.lisp.se/Body/f_car_c.htm