我对Haskell很新,我正在尝试做一个基本的函数,它可以找到列表的意思。我几乎已经解决了,除了我必须做的最后一部分。Haskell中的两个函数的划分
randInts = take 5 $ randoms (mkStdGen 11) :: [Int]
listSum :: (Num a) => [a] -> a
listSum [] = 0
listSum (x:xs) = x + listSum xs
listLength :: (Num a) => [a] -> a
listLength [] = 0
listLength (x:xs) = 1 + listLength xs
listMean :: (Num a) => [a] -> a
listMean [] = 0
listMean x = (listSum x)/(listLength x)
这是我开始,其中listSum和listLength基本上具有相同的功能之和长度上的运营商名单分别listMean需要这两个和将其划分。当我运行这一点,但是,我得到一个错误说“无法演绎(分数一)从使用‘/’从上下文的产生:民为”
起初,我只是觉得我用了错误的类型和切换listmean以listMean ::(分数a)=> [a] - > a开头。这允许我编译,但是当我试图通过给它randInts运行它时,但是我得到错误消息“没有使用'listMean'引发的(Fractional Int)实例。”
我不知道我在这里失踪。请给我一些建议吗?
您的意思是删除小数?我做到了这一点,它给了我一个错误,说“预期的类型,但'一'有种'约束'” –
这给了我错误“没有实例(分数INT)由于使用'listMean'” –