2013-10-09 7 views
1

는 I는 다음과 같은 기능이, X 및 Y 매치에 int [샤아] 등하스켈 타입 불일치

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

그러나 리턴

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) 

을 (헤드 z) 반환 Char 타입 I 돈 문제를 일으키는 것을 보지 마세요 ... 아이디어? : S 고마워!

답변

3

encodeCharChar을 반환하지만 여기서 ++의 첫 번째 인수는 [Char]이어야합니다. ++ 대신 :을 사용하십시오.

+0

Aaah 물론 : S Hehe 미안하지만, 나는 함수가리스트를 생성 할 수 있다는 것을 잊어 버리고, 마치 문자열 인 것처럼 모든 것을 연결해보십시오. 감사합니다, 작동합니다! :디 – MrD