0

我收到以下错误...

输入“args”上的解析错误

...在尝试编译以下代码时:

import System.Environment (getArgs)

interactWith function inputFile outputFile = do 
    input <- readFile inputFile
    writeFile outputFile (function input)

main = mainWith myFunction   
    where mainWith function = do
        args <- getArgs  
        case args of
            [input,output] -> interactWith function input output 
            _ -> putStrLn "error: exactly two arguments needed"

        -- replace "id" with the name of our function below 
        myFunction = id

代码取自Real World Haskell的第 4 章。

4

2 回答 2

2

问题是缩进。在书中我无法正确解释缩进。代码应该是这样的:

import System.Environment (getArgs)

interactWith function inputFile outputFile = do 
    input <- readFile inputFile
    writeFile outputFile (function input)

main = mainWith myFunction   
    where 
        mainWith function = do
            args <- getArgs  
            case args of
                [input,output] -> interactWith function input output 
                _ -> putStrLn "error: exactly two arguments needed"

        -- replace "id" with the name of our function below 
        myFunction = id

我在学习 Haskell 时遇到的最大问题之一是模糊的编译错误。

于 2013-04-21T15:29:14.493 回答
0

您问题代码中的缩进是正确的。您可能在代码中加入了 a 。有很多方法可以强制你的编辑器用 4 个空格替换每个选项卡。

于 2013-04-21T16:44:50.843 回答