簡體   English   中英

如何使用 car cdr caar caddr 等訪問 raket 中的嵌套列表?

[英]How do I access nested list in raket using car cdr caar caddr etc.?

我正在嘗試熟悉訪問 Racket 中的嵌套列表。 我有以下問題。 例如,我有一個像這樣define x (list 1 2 3 )的列表,我理解(car x) -> 1(cdr x) -> (2 3) 但是,如果我有一個這樣的列表,請定義y (list (list (list 6 7 8 ) 2 5 ) 3 4 5 6 ))並運行(caaar y)我得到6 我明白到目前為止發生的事情。 我不明白的是為什么我在運行(caadr y)時會出錯。 (說違反合同)而不是返回( 7 8 ) 你能給我解釋一下嗎?

(caadr y)(car (car (cdr y))) ,所以你會得到(car (car '(3 4 5 6))) => (car 3) => error

您需要返回'(7 8) ,即(cdr (car (car y))) ,因此字母按以下順序排列: C-cDr-cAr-cAr-R => CDAAR, (cdaar y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM