在列表(方案)中创建列表总和列表?
Creating a list of sums of lists in a list (Scheme)?
我对Scheme不是很熟悉,所以遇到了问题。
编写一个方案过程,它采用一个数字列表,每个数字列表至少包含一个数字。您的程序应该 return 一个列表,其中包含每个数字列表的单独总和。例如:((1 2 3) (4 5) (6) (7 8 9 10)) -> (6 9 6 34)
到目前为止,我正在尝试创建一个 listCreator 函数和一个 sumHelper 函数。我仍在进行测试,但遇到错误。
(define lst '((1 2 3) (4 5) (6) (7 8 9 10)))
lst
(define sumHelper
(lambda (lst)
(if (null? lst)
0
(+ (car lst) (sumHelper (cdr lst))))))
(define listCreator
(lambda (lst)
(if (null? lst)
0
(sumHelper (car lst)))))
我的错误是:汽车:需要一对,给定 2
任何解决此问题的帮助或指导将不胜感激。
您对 listCreator
的定义没有建立也没有应用到列表的其余部分:
(define listCreator
(lambda (lst)
(if (null? lst)
'()
(cons (sumHelper (car lst)) (listCreator (cdr lst))))))
此外,如果列表为空,则值应为空列表:'()
而不是 0
完成这些更改后,您的代码就可以正常工作了。
我对Scheme不是很熟悉,所以遇到了问题。
编写一个方案过程,它采用一个数字列表,每个数字列表至少包含一个数字。您的程序应该 return 一个列表,其中包含每个数字列表的单独总和。例如:((1 2 3) (4 5) (6) (7 8 9 10)) -> (6 9 6 34)
到目前为止,我正在尝试创建一个 listCreator 函数和一个 sumHelper 函数。我仍在进行测试,但遇到错误。
(define lst '((1 2 3) (4 5) (6) (7 8 9 10)))
lst
(define sumHelper
(lambda (lst)
(if (null? lst)
0
(+ (car lst) (sumHelper (cdr lst))))))
(define listCreator
(lambda (lst)
(if (null? lst)
0
(sumHelper (car lst)))))
我的错误是:汽车:需要一对,给定 2
任何解决此问题的帮助或指导将不胜感激。
您对 listCreator
的定义没有建立也没有应用到列表的其余部分:
(define listCreator
(lambda (lst)
(if (null? lst)
'()
(cons (sumHelper (car lst)) (listCreator (cdr lst))))))
此外,如果列表为空,则值应为空列表:'()
而不是 0
完成这些更改后,您的代码就可以正常工作了。