小编Sor*_*run的帖子

Haskell拉链

我想总结一个压缩列表。

averageGrade :: [Float] -> [Int] -> Float
averageGrade [0.75 , 0.25] [6, 4] , result: 0,75*6 + 0.25*4 = 5.5 
Run Code Online (Sandbox Code Playgroud)

当我去ghci并执行以下操作时:

sum(zipWith (*) [0.75, 0.25] [6, 4])
Run Code Online (Sandbox Code Playgroud)

我确切地得到了我想要的。

但是在代码中我遇到了一个错误,我也不知道为什么。

    averageGrade :: [Float] -> [Int] -> Float
    averageGrade a b
                | a == [] = 0
                | b == [] = 0
                | otherwise = (sum(zipWith (*) a b))
Run Code Online (Sandbox Code Playgroud)

如果要编译此文件,则会出现以下错误:

Couldn't match type ‘Int’ with ‘Float’
Expected type: [Float]
  Actual type: [Int]
In the third argument of ‘zipWith’, namely ‘b’ …
Run Code Online (Sandbox Code Playgroud)

haskell ghci zipwith

6
推荐指数
1
解决办法
98
查看次数

标签 统计

ghci ×1

haskell ×1

zipwith ×1