Anonymous user
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}}==
|