我需要使用map函数来获取便士到磅的换算。
很抱歉这个愚蠢的问题..但是我是初学者。

del :: Int -> Float
del x =  ( fromIntegral x ) / 100

pounds :: [Int] -> [Float]
pounds = map del


我得到这个错误。

*Main> pounds 45
<interactive>:90:8:
    No instance for (Num [Int])
      arising from the literal `45'
    Possible fix: add an instance declaration for (Num [Int])
    In the first argument of `pounds', namely `45'
    In the expression: pounds 45
    In an equation for it': it = pounds 45

最佳答案

看来您输入了

ghci> pounds 45


在提示符下。但是pounds需要一个(Int)列表作为其参数。您应该使用

ghci> del 45


在那里,或

ghci> pounds [45]


由于整数文字具有隐式的fromInteger,因此GHC尝试查找需要fromInteger :: Integer -> [Int]的转换instance Num [Int],但找不到它,这就是它报告的错误。

关于haskell - Int到Float的转换:Num [Int]没有实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12963967/

10-11 22:35