'let'上的Haskell Parse错误

时间:2012-12-17 11:30:33

标签: haskell let rabin-karp

所以我是Haskell的新手,我必须编写Rabin Karps算法。 我觉得我的答案应该可以工作,但是当我编译时,我仍然会在“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

1 个答案:

答案 0 :(得分: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