“let”上的Haskell分析错误
所以我是哈斯克尔的新手,我必须编写拉宾-卡普斯算法。 我觉得我的答案应该有效,但在编译时,我一直在“let”错误上遇到解析错误。 谁能帮我一下吗 这是我的密码:“let”上的Haskell分析错误,haskell,let,rabin-karp,Haskell,Let,Rabin Karp,所以我是哈斯克尔的新手,我必须编写拉宾-卡普斯算法。 我觉得我的答案应该有效,但在编译时,我一直在“let”错误上遇到解析错误。 谁能帮我一下吗 这是我的密码: import Data.Char hash :: String -> Int hash [] = -1 hash (x:xs) = ((ord x)) rabinKarp :: String -> String -> Bool rabinKarp [] _ = False rabinKarp mainString
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
您缺少a=,并且在中也缺少一个
编辑:在中,您缺少一个=,在中也缺少一个
编辑:在干杯,伙计,我太累了,我整晚都在想这个作业,结果解决了。我会投你一票,但我需要一个15岁左右的代表,非常感谢!干杯,老兄,我太累了,我花了一整夜的时间想弄明白这个任务,然后解决了它。我会投你一票,但我需要一个15岁左右的代表,非常感谢!
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