鉴于以下情况,
module Foo where
main = do
let foo = case 0 of
0 -> 4
return ()
GHC坚持认为我有语法错误:
Make.hs:5:5: parse error (possibly incorrect indentation)
为什么?我已经使用Haskell一段时间了,它对我来说看起来是正确的。
最佳答案
do语法中的多行表达式必须缩进变量名称之外:
main = do
let foo = case 0 of
0 -> 4
return ()
可以,但是
main = do
let foo = case 0 of
0 -> 4
return ()
不是。