2013-04-28 103 views
1

我想了解什么是caddar在计划中。我的笔记说这是一个嵌套版本的汽车或cdr,但它不能解释它是什么组合。下面是一个代码,其输出:计划中的caddar是什么

=>caddar '((a b c) '(d e f))) 
;Value: c 

有人可以请解释为什么输出为c这里?

谢谢

回答

6

这是(car (cdr (cdr (car '((a b c) '(d e f)))

您可以从名称中得知:a s和d的顺序告诉你它是哪个。对于每一个a,你把一个car和永远d a cdr

1

你可以撰写汽车和司机。
认为它忽略了'c'和'r',然后从右到左应用car/cdr。
example

car = first item 
cdr = second and all subsequent items in list 
cadr = second item 
3

汽车产生第一个元素。 cdr产生其余的。如果你希望得到您的列表的其余部分的第一个元素,你可以使用

(car (cdr '((a b c) (d e f)))) ;; value: '(d e f) 

,一种在速记是玉米粥汽车和CDR在一起,就像这样:

(cadr '((a b c) (d e f))) ;; value: '(d e f) 

注意的 'a' 和CADR 'd' 是相同的顺序在原来的(汽车(CDR ...))

所以caddar是简写:

(car (cdr (cdr (car '((a b c) (d e f)))))) ;; value: c 
(caddar '((a b c) (d e f))) ;; same as above, but with less typing.