RosettaCodeData/Task/Averages-Simple-moving-average/EchoLisp/averages-simple-moving-average.l
2023-07-01 13:44:08 -04:00

10 lines
225 B
Common Lisp

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