RosettaCodeData/Task/Cumulative-standard-deviation/Emacs-Lisp/cumulative-standard-deviation-1.l
2023-07-01 13:44:08 -04:00

16 lines
589 B
Common Lisp

(defun running-std (items)
(let ((running-sum 0)
(running-len 0)
(running-squared-sum 0)
(result 0))
(dolist (item items)
(setq running-sum (+ running-sum item))
(setq running-len (1+ running-len))
(setq running-squared-sum (+ running-squared-sum (* item item)))
(setq result (sqrt (- (/ running-squared-sum (float running-len))
(/ (* running-sum running-sum)
(float (* running-len running-len))))))
(message "%f" result))
result))
(running-std '(2 4 4 4 5 5 7 9))