如何在列表的第一个上执行递归? (球拍)

时间:2011-10-29 23:56:05

标签: list recursion scheme racket

如果您有一份列表清单,您如何访问列表第一个的其余部分?

e.g。如果你有

(define l1 (list (list (list 1 1) (list 2 3) (list 7 8))
            (list (list 2) (list 3 4 5))))

您将如何在此部分执行递归

(list (list 1 1) (list 2 3) (list 7 8))

当我尝试(rest (first l1))

e.g。 (map add1 (rest (first l1))

我收到错误add1: expects a number; given (list 2 3)

1 个答案:

答案 0 :(得分:2)

你完全正确的代码

(rest (first l1))

生成列表第一个的其余部分。具体做法是:

(define l1 (list (list (list 1 1) (list 2 3) (list 7 8))
            (list (list 2) (list 3 4 5))))

(rest (first l1))

产生

(list (list 2 3) (list 7 8))

确实,您无法将此列表的元素添加到一起,因为它们不是数字。

这会回答你的问题吗?