RosettaCodeData/Task/Averages-Simple-moving-average/Bracmat/averages-simple-moving-average.bracmat
2015-02-20 00:35:01 -05:00

38 lines
832 B
Text

( ( I
= buffer
. (new$=):?freshEmptyBuffer
&
' ( buffer avg
. ( avg
= L S n
. 0:?L:?S
& whl
' ( !arg:%?n ?arg
& !n+!S:?S
& 1+!L:?L
)
& (!L:0&0|!S*!L^-1)
)
& (buffer=$freshEmptyBuffer)
& !arg !(buffer.):?(buffer.)
& ( !(buffer.):?(buffer.) [($arg) ?
|
)
& avg$!(buffer.)
)
)
& ( pad
= len w
. @(!arg:? [?len)
& @(" ":? [!len ?w)
& !w !arg
)
& I$3:(=?sma3)
& I$5:(=?sma5)
& 1 2 3 4 5 5 4 3 2 1:?K
& whl
' ( !K:%?k ?K
& out
$ (str$(!k " - sma3:" pad$(sma3$!k) " sma5:" pad$(sma5$!k)))
)
);