爲什麼下面的代碼不正確?我得到這個錯誤:做{{}中的最後一個生成器必須是一個表達式?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