我想了解什麼是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.