2013-10-09 170 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