#!/usr/bin/ruby
func simple_moving_average(period) {
var list = [];
var sum = 0;
func (number) {
list.append(number);
sum += number;
list.len > period && (
sum -= list.shift;
);
return (sum / list.length);
}
}
var ma3 = simple_moving_average(3);
var ma5 = simple_moving_average(5);
for num in (1..^6, 6^..1) {
printf("Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
num, ma3.call(num), ma5.call(num));
}