我刚刚编写了我的第一个Haskell程序,但是有一个我无法理解的错误。我认为这是正确的,因为我只是像书中的例子那样写它。有人可以帮我吗?
main = do
putStrLn "Hello, what's your name?"
name <- getLine
putStrLn ("Hey" ++ name ++ ", nice to meet you!")
错误消息是:
解析输入'putStrLn'
的错误
很奇怪。
答案 0 :(得分:7)
虽然从您发布的代码中无法判断,因为SO至少在某些时候会将标签转换为空格,但问题很可能是您在putStrLn
之前输入了一个文字标签字符,而不是像您所做的那样输入四个空格do
块中的其他两行,反之亦然。
do
块中的所有语句必须以完全相同的空格开头,而不仅仅是在视觉上排列。如果您使用的文本编辑器可以以特殊方式显示文字标签,请将其设置为这样做;它会为你节省一些麻烦。