说我有一个如下的懒惰序列:
(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
答案 0 :(得分:28)
(take 10 (reductions + s))
=> (1 3 6 10 15 21 28 36 45 55)