6

我刚刚编写了我的第一个 Haskell 程序,但是有一个我无法理解的错误。我认为这是正确的,因为我只是像书中的示例一样编写它。有人可以帮我吗?

main = do
    putStrLn "Hello, what's your name?"
    name <- getLine
    putStrLn ("Hey" ++ name ++ ", nice to meet you!")

错误信息是:

输入“putStrLn”解析错误

它很奇怪。

4

1 回答 1

9

虽然不可能从您发布的代码中分辨出来,因为 SO 至少在某些时候会将制表符转换为空格,但问题可能是您之前输入了一个文字制表符,putStrLn而不是您在do块中的其他两行中输入的四个空格,或相反亦然。

块中的所有语句都do必须以完全相同的空格开头,而不仅仅是看起来排列整齐。如果您正在使用可以以特殊方式显示文字选项卡的文本编辑器,请将其设置为这样做;它会为您省去一些麻烦。

于 2013-06-02T05:45:10.003 回答