为什么下面的代码不正确?我得到这个错误:做{{}中的最后一个生成器必须是一个表达式?Haskell压痕错误
main = do putStrLn "What is 2 + 2?"
x <- readLn
if x == 4
then putStrLn "You're right!"
else putStrLn "You're wrong!"
为什么下面的代码不正确?我得到这个错误:做{{}中的最后一个生成器必须是一个表达式?Haskell压痕错误
main = do putStrLn "What is 2 + 2?"
x <- readLn
if x == 4
then putStrLn "You're right!"
else putStrLn "You're wrong!"
您在混合制表符和空格:第二行和第五行包含制表符,而第三行和第四行不包含制表符。
Haskell编译器可能将选项卡扩展到与编辑器不同数量的空格,并且编辑器中看起来正确缩进的内容看起来会与编译器混淆。
最好避免混合制表符和空格,只使用其中的一个进行缩进。
这是疯了!当我复制我在我的问题中写入的代码并将其粘贴回来时,它的工作原理!但是完全一样! – osager