18 lines
467 B
Haskell
18 lines
467 B
Haskell
import Data.List (mapAccumL)
|
|
|
|
|
|
-------------- CUMULATIVE STANDARD DEVIATION -------------
|
|
|
|
cumulativeStdDevns :: [Float] -> [Float]
|
|
cumulativeStdDevns = snd . mapAccumL go (0, 0) . zip [1.0..]
|
|
where
|
|
go (s, q) (i, x) =
|
|
let _s = s + x
|
|
_q = q + (x ^ 2)
|
|
in ((_s, _q), sqrt ((_q / i) - ((_s / i) ^ 2)))
|
|
|
|
|
|
|
|
--------------------------- TEST -------------------------
|
|
main :: IO ()
|
|
main = mapM_ print $ cumulativeStdDevns [2, 4, 4, 4, 5, 5, 7, 9]
|