Скажем, у меня есть ленивая последовательность, например:
(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