RosettaCodeData/Task/Averages-Simple-moving-average/M2000-Interpreter/averages-simple-moving-average-1.m2000
2025-02-27 18:35:13 -05:00

28 lines
431 B
Text

module Simple_moving_average {
smaMAKER=lambda (m) -> {
s=stack
=lambda m, s (N) -> {
stack s {
if len(s)=m then drop
data N
}
= array(stack(s))#sum()/len(s)
}
}
Print "Period = 3"
ma=smaMaker(3)
test(0, 9)
Print "Period = 5"
ma=smaMaker(5)
test(9, 0)
end
sub test(A, B)
local i
Print
for i=A to B
Print "Add ";i;" => moving average ";ma(i)
next
Print
end sub
}
Simple_moving_average