如何为GHCi设置程序的命令行参数?

时间:2012-01-15 03:33:23

标签: haskell ghci

假设使用

执行某些Haskell文件
runghc Queens.hs gecode_compile

现在,这失败了,我想用ghci调试它。如何将选项gecode_compile传递到该计划中,以便getArgs能够正确阅读?

谢谢!

3 个答案:

答案 0 :(得分:53)

您还可以在ghci

中设置命令行参数
ghci> :set args foo bar
ghci> main

ghci> :main foo bar

答案 1 :(得分:17)

您可以使用System.Environment.withArgs函数执行main所需的参数。

这是一个示例会话(不相关的细节省略):

$ ghci
GHCi, version 7.0.3: http://www.haskell.org/ghc/  :? for help
Prelude> import System.Environment
Prelude System.Environment> let main = getArgs >>= mapM_ putStrLn
Prelude System.Environment> withArgs ["hello", "world"] main
hello
world

答案 2 :(得分:12)

您可以使用:set命令:

Prelude> :set args whatever

这意味着getArgs会返回["whatever"]

所以在你的情况下你应该这样做:

Prelude> :set args gecode_compile