我正在尝试创建一个递增矩阵,但是首先我想创建一个递增列表。这是我的程序;
(define make-lst
(lambda (a b)
(if (= a 0)
'()
(list b
(make-lst (- a 1) (+ b 1))))))
但是它给了我输出;
(10 (11 (12 (13 (14 (15 (16 (17 (18 (19 ())))))))))) ;(make-lst 10 10)
如何获取
之类的列表'(10 11 12 13 14 15 16 17 18 19)
我真的是Scheme的初学者
答案 0 :(得分:1)
由于(list 1 2)
创建了一个列表(1 2)
,而make-list
返回了一个列表,所以它使输出(first (second (...)))
现在(list a b)
执行(cons a (cons b '())
,因此您可以将list
替换为cons
,这样它就可以包含一个元素和一个尾部并限定一个列表。