【发布时间】:2016-04-28 23:29:29
【问题描述】:
我对Scheme不是很熟悉,所以我遇到了问题。
编写一个方案过程,它接受一个包含至少一个数字的数字列表。您的过程应该返回一个列表,其中包含每个数字列表的单独总和。例如:((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
任何解决此问题的帮助或指导将不胜感激。
【问题讨论】:
-
谢谢!我知道这一定很简单。
-
哎呀,这是不正确的。应该是
(map (lambda (v) (apply + v)) lst)。但我有一个答案可以解释您的 listCreator 出了什么问题。