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 に答える