RosettaCodeData/Task/Averages-Simple-moving-average/Oz/averages-simple-moving-average.oz
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

27 lines
562 B
Text

declare
fun {CreateSMA Period}
Xs = {NewCell nil}
in
fun {$ X}
Xs := {List.take X|@Xs Period}
{FoldL @Xs Number.'+' 0.0}
/
{Int.toFloat {Min Period {Length @Xs}}}
end
end
in
for Period in [3 5] do
SMA = {CreateSMA Period}
in
{System.showInfo "\nSTART PERIOD "#Period}
for I in 1..5 do
{System.showInfo " Number = "#I#" , SMA = "#{SMA {Int.toFloat I}}}
end
for I in 5..1;~1 do
{System.showInfo " Number = "#I#" , SMA = "#{SMA {Int.toFloat I}}}
end
end