22 lines
456 B
Text
22 lines
456 B
Text
func simple_moving_average(period) {
|
||
|
||
var list = []
|
||
var sum = 0
|
||
|
||
func (number) {
|
||
list.append(number)
|
||
sum += number
|
||
if (list.len > period) {
|
||
sum -= list.shift
|
||
}
|
||
(sum / list.length)
|
||
}
|
||
}
|
||
|
||
var ma3 = simple_moving_average(3)
|
||
var ma5 = simple_moving_average(5)
|
||
|
||
for num (1..5, flip(1..5)) {
|
||
printf("Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
|
||
num, ma3.call(num), ma5.call(num))
|
||
}
|