累加列表的累加器

时间:2015-11-23 02:06:58

标签: list scheme racket accumulator

我正在寻找有关如何将累加器集成到应该生成累积和值列表的函数的提示。

具体来说,我如何使用累加器?我目前有一个跟踪列表总和的。我该如何将这笔款项列入清单?

例如,如果我输入(列表1 2 3),我希望结果为(列表1(+ 1 2)(+ 1 2 3))

1 个答案:

答案 0 :(得分:0)

我使用 srfi-1 库中定义的 pair-fold 函数,因为它是通用的。

(pair-fold (lambda (pair tail) (cons (apply + pair) tail))
                 '()
                 (reverse (iota 10 1)))

这将导致(列表 1 3 6 10 15 21 28 36 45 55)。