Files
RustAst/rtl/sma.myc
T
Michael Schimmel 595bcf09e5 Update examples to use StreamNode and Series with lookback
The `PipelineNode` has been refactored into `StreamNode`. This commit
updates the example files to reflect this change and also updates the
`series` constructor to accept a lookback parameter.

The `PipelineNode` was an artifact of a previous implementation and is
no longer needed. The `StreamNode` is the appropriate type for
representing the output of a pipe operation.

The `series` function now requires a `lookback` argument to specify the
maximum number of items to store. This makes the behavior of series more
explicit and prevents accidental unbounded memory growth.
2026-03-07 23:48:09 +01:00

21 lines
449 B
Plaintext

(do
(def SMA
(fn [length]
(do
(def history (series :float))
(def sum 0.0)
(fn [val]
(do
(def hist_len (len history))
(if (>= hist_len length)
(assign sum (- sum (history (- length 1)))))
(push history val)
(assign sum (+ sum val))
(if (>= hist_len length)
(/ sum length))
)))))
)