计划中的汽车和Cdr

时间:2015-12-14 19:59:43

标签: list scheme

所以我一直在学习Scheme for school,并且使用carcdr系列遇到了一些对我来说没有意义的情况。

所以给出一个列表:(define x '(1 2 3 4 5))

(caddddr x)如何向我发出错误,(cddddr x)返回(5)(car (cddddr x))返回5

不是(caddddr x)(car (cddddr x))相同吗?

2 个答案:

答案 0 :(得分:8)

你只能在其中放置一些dc :-)检查documentation,在r和最后{{}之间1}} ad的任意组合可以有1到4个字符。如果您需要访问除此之外的特定元素,请考虑使用list-ref,它会在列表中返回给定其从零开始的索引的元素,例如:

(define x '(1 2 3 4 5))
(list-ref x 4)
=> 5

答案 1 :(得分:4)

因为方案定义上升到(cddddr pair)‌‌但不超过car。用cdrhttp://www.r6rs.org/final/html/r6rs/r6rs-Z-H-14.html#node_idx_620 和朋友的规范来说:“提供了任意组合,最多四个深度。”见(例如):

a

正如其他地方所述,list-ref可能就是你想要的。