0

「インデントが正しくない可能性があります」というエラーがあります

boyerMooreSearch :: [Char] -> [Char] -> [Int] -> Int
boyerMooreSearch string pattern skipTable 
                                    | skip == 0                                     = 0
                                    | skip > 0 && (string length > pattern length)  = boyerMooreSearch (substring string skip (string length)) pattern skipTable
                                    | otherwise                                     = -1
                                    where 
                                    subStr = (substring 0 (pattern length)) 
                                    skip = (calculateSkip subStr pattern skipTable)

どうしたの?Haskellのインデントルールを誰かが説明できますか?

4

1 に答える 1

4

の行にはsubstr、空白の文字列の後にリテラルのタブ文字が続き、 の行にskipは、同じ文字列の後に 4 つのスペースが続きます。これらは互換性がありません。これを正しく行うための堅牢で柔軟な方法の 1 つは、各行の先頭にまったく同じ空白文字列を使用して、ブロック内のものを並べることです。

ただし、あなたが尋ねたように、本当のルールは、タブはインデント レベルを次の 8 の倍数に増やし、他のすべての文字はインデント レベルを 1 つ増やすことです。ブロック内の異なる行は、同じインデント レベルでなければなりません。dowherelet、およびof紹介ブロック (いくつか忘れている可能性があります)。

于 2012-12-06T18:22:31.250 に答える