#!/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));
}