0
我不能看到为什么有压痕错误这个示例程序中的缩进错误是什么?
编译主(main.hs,main.o),此
main.hs [1 1]:19:17:输入解析错误`案”
每个缩进设置制表符
我需要用空格代替标签?
import Text.ParserCombinators.Parsec
csvFile = endBy line eol
line = sepBy cell (char ',')
cell = many (noneOf ",\n\r")
eol = try (string "\n\r")
<|> try (string "\r\n")
<|> string "\n"
<|> string "\r"
<|> fail "Couldn't find EOL"
parseCSV :: String -> Either ParseError [[String]]
parseCSV input = parse csvFile "(unknown)" input
main =
do c <- getContents
case parse csvFile "(stdin)" c of
Left e -> do putStrLn "Error parsing input:"
print e
Right r -> mapM_ print r
强烈建议切换到空格。它在Haskell中效果更好。我知道人们喜欢他们的标签,如果你非常小心,可以在Haskell中使用它们,但大多数人只是默认使用空格。 – bheklilr 2015-02-06 19:09:17
标签的使用并未正式废弃,但GHC 7.10默认打开'-fwarn-tabs'。使用选项卡会强制使用显示选项卡为8个空格的编辑器,或者确保每个“块”都在新行上开始。其他编辑你的代码的人可能会首先想知道发生了什么,然后用空格重做它。所以不要这样做。 – dfeuer 2015-02-06 20:09:16