【发布时间】:2019-12-03 23:02:12
【问题描述】:
我想创建一个递归方案函数,将其结果用作自身的参数。所以基本上,我希望 get-successor 迭代多次,每次将 x 替换为 get-successor 上一次迭代的结果。被引用的函数子列表只是从 lst 中选择一个子列表。我已经坚持了几天了,所以任何帮助都非常感谢!
(define (get-successor lst x)
(car (shuffle (cdr (sub-list lst x)))))
【问题讨论】:
-
我不明白你真正想要什么。
-
代码和问题没有任何意义,但是调用自身并使用结果是完全正常的。许多递归函数都可以做到这一点。它工作的一个要求是它有一个不递归的基本情况,并且递归调用比之前的调用更接近基本情况。例如。
(define (my-length lst) (if (null? lst) 0 (+ 1 (my-length (cdr lst))))有效,因为递归是在一个小一个元素的列表上完成的,并最终达到返回0的基本情况。它将返回列表的长度。用更多细节编辑您的问题或将其删除。