Haskell Parse error на 'let'
Так что я новичок в Haskell и мне нужно запрограммировать алгоритм Рабина Карпа. Я чувствую, что мой ответ должен сработать, но я продолжаю получать ошибку "parse error on '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 ответ
Решение
Вам не хватает =
а также 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