我是Haskell的新手,在haskell中编写一个小代码时,我遇到了一个名为
的错误Last generator in do {...} must be an expression
我努力删除此错误但失败了。
我为这个错误访问了堆栈溢出,我发现但答案太大而复杂,所以我无法理解。
It is the link where I found about this error
我的代码是
main = do
putStrLn "What is your name?"
name <- getLine
putStrLn ("Name of customer is "++ name)
任何人都可以帮助我,因此可以解决此错误,并且必须感谢您的帮助
答案 0 :(得分:6)
在您的原始问题中,您的四行有这些缩进:
猜测,StackOverflow&#34;插入代码&#34;插入了(1)的缩进。按钮,所以你的原始来源可能有这个缩进:
GHC将制表符视为扩展为八空格式制表符,但do
块中的每一行必须相互对齐(对于初学者,应缩进比封闭块更深)。因此,我建议使用以下两种解决方案之一:
OR
以下内容也适用(并且是最合理的指标对原始内容的最小编辑),但我强烈建议不要这样做。
有关空白样式的进一步讨论,请参阅Why shouldn't I mix tabs and spaces?。