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