RosettaCodeData/Task/Averages-Simple-moving-average/EchoLisp/averages-simple-moving-average.echolisp
2016-12-05 23:44:36 +01:00

10 lines
225 B
Text

(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))))