我收到以下错误...
输入`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章。
答案 0 :(得分: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时遇到的一个更大的问题是模糊的编译错误。
答案 1 :(得分:0)
你问题中的缩进代码是正确的。 你可能在你的代码中加入了一个。有很多方法可以强制你的编辑器用4个空格替换每个标签。