RosettaCodeData/Task/Averages-Simple-moving-average/Tcl/averages-simple-moving-average-1.tcl
2023-07-01 13:44:08 -04:00

11 lines
303 B
Tcl

oo::class create SimpleMovingAverage {
variable vals idx
constructor {{period 3}} {
set idx end-[expr {$period-1}]
set vals {}
}
method val x {
set vals [lrange [list {*}$vals $x] $idx end]
expr {[tcl::mathop::+ {*}$vals]/double([llength $vals])}
}
}