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

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

错误消息是:



它很奇怪。

最佳答案

尽管无法从已发布的代码中分辨出来,因为SO至少在某些时候会将制表符转换为空格,但问题可能是您在putStrLn之前输入了文字制表符,而不是像在do中的其他两行一样输入了四个空格封锁,反之亦然。
do块中的所有语句必须以完全相同的空格开头,而不仅仅是看起来在视觉上对齐。如果您正在使用可以以特殊方式显示文字标签的文本编辑器,请对其进行设置;否则,请执行以下操作。它将为您节省一些头痛。

关于Haskell:在输入 'putStrLn'上解析错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16880078/

10-12 20:32