【发布时间】:2020-06-07 10:00:05
【问题描述】:
我是球拍初学者,正在学习列表的工作原理。我必须创建一个函数,该函数接受一个计数变量和一个列表并生成相同的列表,但第一个元素循环到列表“count”次数的末尾。我的代码适用于偶数列表,例如调用函数 2 '(1 2 3 4),这会导致列表 '(3 4 1 2),但不适用于奇数列表,例如调用 2 '(1 2 3),这应该导致'(3 1 2)
(define (cycleN count aList)
(cond
[(empty? aList) '()]
[(= count 0) aList]
[(= count (length aList)) aList]
[else (append (take-right aList count) (take aList count))]))
我错过了什么?
【问题讨论】:
-
你应该想出一个递归解决这个问题吗?代码看起来想要递归,但实际上不是。
-
我应该想出一个递归解决方案。你能解释一下它是如何不递归的吗?
-
递归函数调用自身;发布的代码不会调用自己。