所以我一直在学习Scheme for school,并且使用car
和cdr
系列遇到了一些对我来说没有意义的情况。
所以给出一个列表:(define x '(1 2 3 4 5))
(caddddr x)
如何向我发出错误,(cddddr x)
返回(5)
而(car (cddddr x))
返回5
。
不是(caddddr x)
与(car (cddddr x))
相同吗?
答案 0 :(得分:8)
你只能在其中放置一些d
和c
:-)检查documentation,在r
和最后{{}之间1}} a
和d
的任意组合可以有1到4个字符。如果您需要访问除此之外的特定元素,请考虑使用list-ref
,它会在列表中返回给定其从零开始的索引的元素,例如:
(define x '(1 2 3 4 5))
(list-ref x 4)
=> 5
答案 1 :(得分:4)
因为方案定义上升到(cddddr pair)
但不超过car
。用cdr
和http://www.r6rs.org/final/html/r6rs/r6rs-Z-H-14.html#node_idx_620
和朋友的规范来说:“提供了任意组合,最多四个深度。”见(例如):
a
正如其他地方所述,list-ref可能就是你想要的。