16 lines
589 B
EmacsLisp
16 lines
589 B
EmacsLisp
(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))
|