# Welford: Online mean and variance computation
Example
example :: [Double] -> IO ()
example vals = do
let n = fromIntegral (length vals)
mean = VB.sum vals / n
var = VB.sum (VB.map (\x -> (x - mean) ^ 2) vals) / (n - 1)
(wMean, _, wVarSample) = finalize $ foldl' addValue WelfordExistingAggregateEmpty (VB.toList vals)
print (mean, var)
print (wMean, wVarSample)
`WelfordExistingAggregate` is used to save the state. Use the function `finalize` to retrieve the current estimates for the mean, variance and sample variance.