haskell I / O,putStrLn应用于两个参数

时间:2013-06-13 05:46:18

标签: haskell

当我尝试编译下面的列表时

import System.Environment(getArgs)
import System.Exit
import Control.Monad(when)
main = do 
    args <- getArgs
    when (length args /= 2) $ do
        putStrLn "Syntax: passwd-al filename uid"
        existFailure

编译器投诉:函数'putStrLn'应用于两个参数。 但显然它只需要一个String而existsFailure只是System.Exit的另一个IO动作。

如何解决这个问题?

1 个答案:

答案 0 :(得分:9)

我的putStrLn没有出现这样的错误 - 你发布的代码没问题(通知间距可能不同,SO不会重现标签,而只是通过空格显示缩进,这对Haskell很重要)。 / p>

但是,你有existFailure,我觉得这很酷,但你可能想要使用函数exitFailure。请注意existexit之间的区别。