所以我是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
答案 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