Averages/Simple moving average: Difference between revisions

Added EchoLisp
m (→‎{{header|Elixir}}: used larger period, added rounding)
(Added EchoLisp)
Line 1,010:
2 3.8
1 3.0</lang></div>
 
=={{header|EchoLisp}}==
<lang scheme>
(lib 'tree) ;; queues operations
 
 
(define (make-sma p)
(define Q (queue (gensym)))
(lambda (item)
(q-push Q item)
(when (> (queue-length Q) p) (q-pop Q))
(// (for/sum ((x (queue->list Q))) x) (queue-length Q))))
</lang>
{{out}}
<pre>
(define serie '(1 2 3 4 5 5 4 3 2 1))
(define sma-3 (make-sma 3))
(define sma-5 (make-sma 5))
 
(for ((x serie)) (printf "%3d %10d %10d" x (sma-3 x) (sma-5 x)))
 
1 1.3333 2.2
2 1.3333 1.8
3 2 1.8
4 3 2.2
5 4 3
5 4.6667 3.8
4 4.6667 4.2
3 4 4.2
2 3 3.8
1 2 3
</pre>
 
 
</pre>
 
=={{header|Elena}}==