mean :: Fractional a => [a] -> a mean [] = 0 mean lst = mean' 0 0 lst where mean' v l [] = v / l mean' v l (x:xs) = mean' (v + x) (l + 1) xs main :: IO () main = putStrLn $ show (mean [1..4])