我想定义一个以整数作为输入的方法,并动态创建所有下降整数的列表为零。我在调用n-1元素的方法时遇到了麻烦
答案 0 :(得分:5)
这不是那么漂亮,但这应该有效,在DrScheme中进行测试。
(define (gen-list x )
(if (= x 0) (list 0) (cons x (gen-list (- x 1)))))
答案 1 :(得分:3)
现在这是一个家庭作业问题,我认为尾递归版本可能是另一种选择。
(define (gen-list x)
(let lp ((n 0) (ret '()))
(if (> n x)
ret
(lp (1+ n) (cons n ret)))))
答案 2 :(得分:0)
如果您正在使用PLT计划,那么理解库会让您相当整洁地执行此操作:
; natural -> (listof natural)
(define (list-to-zero start-num)
(for/list ([i (in-range start-num 0 -1)])
i))
只是递归形式的替代......