【发布时间】:2018-05-24 01:48:30
【问题描述】:
我正在尝试学习 Scheme,但遇到了问题。
我可以创建一个递归函数来创建一个像 (5,4,3,2,1) 这样的列表。但我不知道如何创建一个函数
(比如说(define (make_list n)))
具有升序排列的元素,例如 (1,2,3,4,5....n)。
有人暗示吗?
(define (make_list n)
(if (= n 1)
(list 1)
(append (list n) (make_list (- n 1)))))
这就是我用 n 元素制作一个列表的方法,它会返回
> (make_list 3)
'(3 2 1)
> (make_list 5)
'(5 4 3 2 1)
我需要的是返回类似的东西:
> (make_list 3)
'(1 2 3)
> (make_list 5)
'(1 2 3 4 5)
【问题讨论】:
-
我猜你应该从头开始编写解决方案,但惯用的解决方案是:
(build-list n add1)