1

私は 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
4

1 に答える 1

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

于 2012-12-17T11:35:29.210 に答える