Averages/Simple moving average: Difference between revisions

Added PicoLisp
(Added PicoLisp)
Line 1,005:
end SMA;
</lang>
 
=={{header|PicoLisp}}==
<lang PicoLisp>(de sma (@Len Lst)
(let Data NIL
(curry (@Len Data) (N)
(push 'Data N)
(and (nth Data @Len) (con @)) # Truncate
(*/ (apply + Data) (length Data)) ) ) )</lang>
<lang PicoLisp>(def 'sma3 (sma 3))
(def 'sma5 (sma 5))
 
(scl 2)
(for N (1.0 2.0 3.0 4.0 5.0 5.0 4.0 3.0 2.0 1.0)
(prinl
(format N *Scl)
" (sma3) "
(format (sma3 N) *Scl)
" (sma5) "
(format (sma5 N) *Scl) ) )</lang>
Output:
<pre>1.00 (sma3) 1.00 (sma5) 1.00
2.00 (sma3) 1.50 (sma5) 1.50
3.00 (sma3) 2.00 (sma5) 2.00
4.00 (sma3) 3.00 (sma5) 2.50
5.00 (sma3) 4.00 (sma5) 3.00
5.00 (sma3) 4.67 (sma5) 3.80
4.00 (sma3) 4.67 (sma5) 4.20
3.00 (sma3) 4.00 (sma5) 4.20
2.00 (sma3) 3.00 (sma5) 3.80
1.00 (sma3) 2.00 (sma5) 3.00</pre>
 
=={{header|PureBasic}}==
Anonymous user