我被GHCI的一個奇怪的佈局「功能」咬傷:佈局陷阱或GHCi錯誤?
$ cat > problem.hs
l = [6
, 5]
t = do { putStrLn "line1"
; putStrLn "line2" }
當加載到GHCI,我得到與逗號行的錯誤parse error (possibly incorrect indentation or mismatched brackets)
,但不與分號行。我當時的印象是,括號內的[…]
和支撐{…}
結構暫停佈局,所以這對我來說是一個驚喜。有人可以告訴我們這是符合Haskell規範的行爲還是僅僅是GHC(i)錯誤?
我敢肯定這是按照Haskell規範。佈局根本不在乎parens或方括號。 – leftaroundabout 2014-10-20 11:30:56
我的理解是'{...}'暫停佈局,但沒有別的。特別是'(...)'和'[']'都不會影響佈局。 – MathematicalOrchid 2014-10-20 11:35:21