无法匹配预期的类型

时间:2014-02-16 22:39:56

标签: haskell ghc

我有以下Haskell程序:

catlines = unlines . zipWith (\(n,l) -> show n ++ l) [0..]

main = putStrLn $ catlines ["A", "B"]

当我尝试编译它时,GHC会出现以下错误:

catlines.hs:1:41:
    Couldn't match expected type `b0 -> String' with actual type `[a0]'
    In the expression: show n ++ l
    In the first argument of `zipWith', namely
      `(\ (n, l) -> show n ++ l)'
    In the second argument of `(.)', namely
      `zipWith (\ (n, l) -> show n ++ l) [0 .. ]'

据我所知,这应该编译。我不知道出了什么问题。

1 个答案:

答案 0 :(得分:5)

问题是传递给zipWith的函数应该有两个参数,而不是一个元组。试试这样:

zipWith (\n l -> show n ++ l)