Having contraints like 'Fractional Int => IO ()'
Pixel
pixel@mandrakesoft.com
13 Nov 2001 15:07:25 +0100
Jesper Louis Andersen <jlouis@diku.dk> writes:
> This problem has had my attention for a while now. I hope someone would
> like to help me out on the problem.
>
> I have a simple average function defined as:
>
> mean :: (Fractional a) => [a] -> a
> mean l = (sum l)/ fromIntegral (length l)
due to the absence of subtyping, things like this will work only if you don't
precise the type, keeping class constraints.
-- length2 :: Num a => [b] -> a
length2 [] = 0
length2 (x:xs) = 1 + length2 xs
-- mean :: Fractional a => [a] -> a
mean l = sum l / length2 l
m = (mean [1,0,0] :: Rational, mean [1,0,0] :: Double)
gives 1%3 and 0.333333
(thanks to pad for pinpointing the haskell solution,
merd solution is http://merd.sf.net/inference.txt)