2013-10-09 125 views
1

我有以下功能: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和[字符]和(头z)返回类型char我不看不出是什么导致了问题......想法? :S谢谢!

回答

3

encodeChar返回Char,但++这里的第一个参数需要是[Char]。使用:而不是++

+0

Aaah当然是:S呵呵抱歉,我一直忘记函数可以生成列表并尝试将所有内容连接起来,就像它是一个字符串一样,谢谢,作品! :d – MrD