代码改变世界

Common Lisp中的car和cdr

2013-03-04 15:31  java20130722  阅读(626)  评论(0编辑  收藏  举报

car用于得到list中的第一个cell的值:

> (car '(a b c))
A

cdr用于得到list中除了第一个cell之外的值,并作为一个新的list返回:

>(cdr '(a b c))
(B C)


car和cdr最强大的功能是可以通过搭配"a"和“d”达到嵌套的效果

(cadr list) = (car (cdr list))

> (cadr '(a b c))
B

(cdar list) = (cdr (car list))

>(cdar '((1 2 3) a b c))
(2 3)


可以通过搭配“a”和“d”的顺序构造更复杂的命令,但是仍然按照上述的方式解析嵌套。