2013-04-28 102 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.