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 に答える