Tengo el siguiente problema: Tengo una serie de tiempo con más de 10000 entradas y deseo realizar algunos cálculos con cada una de ellas. Esto solo no sería un problema, pero necesito obtener el último valor calculado para obtener el siguiente. Una forma muy simple de lo que necesito se vería así:Problema al iterar sobre una serie de tiempo en clojure
Val(n) = Val(n-1) + (time-series-entry/2)
(! O algo parecido)
no tengo ni idea de cómo manejar esto. Basta con hacer algo como esto:
(defn calc-val
[time-series element]
(seq (cons (generate-val-element time-series element)
(calc-val time-series (inc element)))))
no funcionaría porque no puedo (al menos yo no sé cómo!) Obtener el último valor calculado. Entonces pensé: OK, usemos Loop-Recur. Esto me daría el valor correspondiente a la entrada de la serie de tiempo PERO para la siguiente tendría que hacer todos los cálculos otra vez. Iterar sería lo correcto, pero no funcionó porque la función tiene efectos secundarios.
Así que estoy atrapado aquí en este caso. Sería genial si alguien pudiera darme una pista.
Si yo Comprenda la pregunta correctamente, el resultado de la transformación en cada paso depende del resultado de la transformación en el paso anterior, no en la entrada anterior no transformada. Por lo tanto, indirectamente depende del fragmento inicial completo de la serie que lo precede. (Esperando ser corregido por el OP si estoy equivocado. :-)) –
Si ese es el caso, absolutamente. Lo entendí de manera diferente (como su ejemplo imperativo lo hizo parecer de otra manera) ¡pero estoy feliz de estar equivocado o bien! De cualquier manera, él está en buenas manos;) – Isaac
Me parece a mí también. Aquí está la esperanza de que él/ella esté de acuerdo. :-) –