У меня следующая проблема:
У меня есть временной ряд с более чем 10000 записями, и я хочу выполнить некоторые вычисления с каждой из них. Это само по себе не будет проблемой, но мне нужно получить последнее вычисленное значение, чтобы получить следующее. Очень простая форма того, что мне нужно, будет выглядеть так:
Val(n) = Val(n-1) + (time-series-entry / 2)
(или что-то в этом роде!)
Я понятия не имею, как с этим справиться. Просто делаю что-то вроде этого:
(defn calc-val
[time-series element]
(seq (cons (generate-val-element time-series element)
(calc-val time-series (inc element)))))
не сработает, потому что не может (по крайней мере, я не знаю, как!) Получить последнее вычисленное значение.
Тогда я подумал: хорошо, давайте использовать Loop-Recur. Это дало бы мне значение, соответствующее записи временного ряда, НО для следующего, который я должен был бы сделать все вычисления снова.
Итерация была бы правильной вещью, но она не работала, потому что у функции были побочные эффекты.
Так что я застрял здесь на этом. Было бы здорово, если бы кто-нибудь дал мне подсказку.