RosettaCodeData/Task/Averages-Simple-moving-average/HicEst/averages-simple-moving-average-2.hicest
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

18 lines
406 B
Text

procedure main(A)
sma := buildSMA(3) # Use better name than "I".
every write(sma(!A))
end
procedure buildSMA(P)
local stream
c := create {
stream := []
while n := (avg@&source)[1] do {
put(stream, n)
if *stream > P then pop(stream)
every (avg := 0.0) +:= !stream
avg := avg/*stream
}
}
return (@c, c)
end