我想了解什么是caddar在计划中。我的笔记说这是一个嵌套版本的汽车或cdr,但它不能解释它是什么组合。下面是一个代码,其输出:计划中的caddar是什么
=>caddar '((a b c) '(d e f)))
;Value: c
有人可以请解释为什么输出为c这里?
谢谢
我想了解什么是caddar在计划中。我的笔记说这是一个嵌套版本的汽车或cdr,但它不能解释它是什么组合。下面是一个代码,其输出:计划中的caddar是什么
=>caddar '((a b c) '(d e f)))
;Value: c
有人可以请解释为什么输出为c这里?
谢谢
这是(car (cdr (cdr (car '((a b c) '(d e f)))
。
您可以从名称中得知:a
s和d
的顺序告诉你它是哪个。对于每一个a
,你把一个car
和永远d
a cdr
。
你可以撰写汽车和司机。
认为它忽略了'c'和'r',然后从右到左应用car/cdr。
example:
car = first item
cdr = second and all subsequent items in list
cadr = second item
汽车产生第一个元素。 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.