22

假设我有一个惰性序列,如下所示:

(def s (iterate inc 1))
(take 10 s)
=> (1 2 3 4 5 6 7 8 9 10)

现在,我想生成s如下的累积和序列:

=> (1 3 6 10 15 ...)

我怎样才能做到这一点?我尝试的是使用atom并累积总和(变异)这是生成累积序列的唯一方法还是有更好的方法来做到这一点?

注意:上述累计金额仅为示例。源序列可以是其他序列。所以我不能使用公式:s(n) = n(n+1)/2

4

1 回答 1

35
(take 10 (reductions + s))
=> (1 3 6 10 15 21 28 36 45 55)
于 2013-02-07T15:28:03.533 回答