次のような遅延シーケンスがあるとします。
(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
ベストアンサー1
(take 10 (reductions + s))
=> (1 3 6 10 15 21 28 36 45 55)