0

我有这个解释错误,我不知道出了什么问题

module Series where

series :: Double -> Double
series i1 = zipWith (/) (map (i1^)[1..]) (map(\x -> product[1..x]) [1..])

我的错误是

Couldn't match expected type `Double' with actual type `[c0]'
    In the return type of a call of `zipWith'
    In the expression:
      zipWith
        (/) (map (i1 ^) [1 .. ]) (map (\ x -> product [1 .. x]) [1 .. ])
    In an equation for `series':
        series i1
          = zipWith
              (/) (map (i1 ^) [1 .. ]) (map (\ x -> product [1 .. x]) [1 .. ])
Failed, modules loaded: none.

任何人都可以帮忙吗?提前致谢!

4

1 回答 1

3

自己用ghci很容易找到答案:

> let series i1 = zipWith (/) (map (i1^)[1..]) (map(\x -> product[1..x]) [1..])

> :t series 
series :: (Enum c, Fractional c) => c -> [c]

我不知道出了什么问题

您的签名错误,编译器无法将实际函数类型与您的签名匹配。

于 2012-10-21T11:24:12.357 回答