我收到了这个编译错误:
Files.hs:47:17: parse error on input ‘->’
Failed, modules loaded: none.
在以下代码部分中:
main :: IO ()
main = do
args <- getArgs
let f = case args of
("W":_) -> eoltoW
-- ^ here's 47:17
("U":_) -> eoltoU
_ -> fail "2 - 3 arguments required"
case args of
[_,i,o] -> editWith f i o
[_,i] -> catWith f i
[_] -> fail "2 - 3 arguments required"
虽然我理解逻辑可以使用一些整理,但我不知道我的案例语法出错了。我认为这可能是与do
和let
的一些奇怪的互动,但我找不到任何关于如何纠正它的线索。
注意,我确保我只使用空格进行缩进
似乎进一步添加单个空格的缩进(如下所示)足以防止错误,但我不明白为什么。
main = do
args <- getArgs
let f = case args of
("W":_) -> eoltoW
-- ^ here's 47:17
("U":_) -> eoltoU
_ -> fail "2 - 3 arguments required"