次の問題があります: 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)))))
最後に計算された値を取得できないため (少なくとも方法がわからない!)、機能しません。それから私は考えました: OK、Loop-Recur を使用しましょう。これにより、時系列エントリに対応する値が得られますが、次のエントリでは、すべての計算を再度行う必要があります。反復は正しいことですが、関数には副作用があるため機能しませんでした。
だから私はこれにここで立ち往生しています。誰かが私にヒントを与えることができれば素晴らしいことです。