我刚刚编写了我的第一个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/