2012-12-17 3 views
1

저는 하스켈을 처음 사용했기 때문에 Rabin Karps 알고리즘을 프로그래밍해야합니다. 내 대답은 작동해야한다고 생각하지만 컴파일 할 때 "구문 분석 오류가 발생했습니다"오류가 계속 발생합니다. 아무도 나를 도와 줄 수 없었습니다.Haskell 'let'에 대한 구문 분석 오류

import Data.Char 

hash :: String -> Int 
hash [] = -1 
hash (x:xs) = ((ord x)) 

rabinKarp :: String -> String -> Bool 
rabinKarp [] _ = False 
rabinKarp mainString patternString 
    let 
    hashPattern = hash patternString 
    hashMain = hash (take (length pattern) mainString) 
    if hashPattern == hashMain 
    then True 
    else rabinKarp (drop 1 mainString) patternString 

답변

5

당신이 = 누락하고 있으며, 또한 in

rabinKarp mainString patternString = 
    let 
    hashPattern = hash patternString 
    hashMain = hash (take (length pattern) mainString) 
    in if hashPattern == hashMain 
    then True 
    else rabinKarp (drop 1 mainString) patternString 

편집 : 여기

내 코드입니다 in

+0

건배 남자, 나는 내가 한 너무 피곤 해요 이 임무를 파악하려고 애쓰던 모든 사람. 나는 당신을 투표 할 것입니다. 그러나 나는 15 대 또는 뭔가의 담당자가 필요합니다, 정말 고마워요! – AndyOHart