Haskell类型不匹配

时间:2013-10-09 21:44:37

标签: haskell

我有以下功能:

encodeChar :: Int -> [Char] -> Char -> Char
encodeChar x y z = eChar (offsetChar x y) z

encodeString :: Int -> [Char] -> String -> String
encodeString _ _ "" = ""
encodeString x y z = encodeChar x y (head z) ++ encodeString x y (tail z)

返回

*** Expression     : encodeChar x y (head z) ++ encodeString x y (tail z)
*** Term           : encodeChar x y (head z)
*** Type           : Char
*** Does not match : [Char]

然而,当x和y匹配Int和[Char]和(head z)返回Char类型时,我看不出是什么导致了这个问题......想法? :谢谢!

1 个答案:

答案 0 :(得分:3)

encodeChar会返回Char,但此处++的第一个参数需要为[Char]。使用:代替++