J'ai le problème suivant: J'ai une série chronologique avec plus de 10000 entrées et je veux effectuer quelques calculs avec chacun d'eux. Cela ne serait pas un problème à lui seul, mais je dois obtenir la dernière valeur calculée pour obtenir la suivante. Une forme très simple de ce que je besoin ressemblerait à ceci:problème itérer sur une série chronologique en clojure
Val(n) = Val(n-1) + (time-series-entry/2)
(! Ou quelque chose comme ça)
Je n'ai aucune idée comment gérer cela. Il suffit de faire quelque chose comme ceci:
(defn calc-val
[time-series element]
(seq (cons (generate-val-element time-series element)
(calc-val time-series (inc element)))))
ne fonctionnerait pas parce que ne peut pas (au moins je ne sais pas comment!) Obtenir la dernière valeur calculée. Puis j'ai pensé: OK, utilisons Loop-Recur. Cela me donnerait la valeur correspondant à l'entrée de la série temporelle MAIS pour la suivante je devrais refaire tous les calculs. Itérer serait la bonne chose, mais cela n'a pas fonctionné parce que la fonction a des effets secondaires.
Donc, je suis coincé ici sur celui-ci. Ce serait génial si quelqu'un pouvait me donner un indice.
Si je comprendre la question correctement, le résultat de la transformation à chaque étape dépend du résultat de la transformation à l'étape précédente - pas sur l'entrée précédente non transformée. Donc indirectement cela dépend du fragment initial entier de la série seq qui le précède. (En espérant être corrigé par l'OP si je me trompe. :-)) –
Si c'est le cas, absolument. Je l'ai compris différemment (comme son exemple impératif l'a fait croire autrement) mais je suis heureux d'avoir tort ou raison! De toute façon, il est entre de bonnes mains;) – Isaac
Il me semble aussi. En espérant qu'il/elle accepte. :-) –