[Haskell-beginners] Newbie question about function type constraints

Lai Boon Hui laiboonh at gmail.com
Thu Sep 22 13:19:12 UTC 2016


Hi, can someone explain to me why i cannot define meanList as:

meanList :: (Integral a, Fractional b) => [a] -> a
meanList xs = (sumList xs) / (lengthList xs)

I want to restrict the function to only accept lists like [1,2,3] and
return answer 2.0


sumList :: (Num a) => [a] -> a
sumList [] = 0
sumList (x:xs) = x + (sumList xs)

lengthList :: (Num a) => [t] -> a
lengthList [] = 0
lengthList (_:xs) = 1 + (lengthList xs)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20160922/45389bc3/attachment.html>


More information about the Beginners mailing list