假设执行了一些Haskell文件
runghc Queens.hs gecode_compile
Run Code Online (Sandbox Code Playgroud)
现在,这失败了,我想调试它ghci.如何将选项传递给gecode_compile程序,以便getArgs正确读取?
谢谢!!
Dan*_*her 58
您还可以在ghci中设置命令行参数
ghci> :set args foo bar
ghci> main
Run Code Online (Sandbox Code Playgroud)
要么
ghci> :main foo bar
Run Code Online (Sandbox Code Playgroud)
Joh*_*mew 20
您可以使用该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
Run Code Online (Sandbox Code Playgroud)
Tik*_*vis 13
您可以使用以下:set命令:
Prelude> :set args whatever
Run Code Online (Sandbox Code Playgroud)
这将意味着getArgs回报["whatever"].
所以在你的情况下你应该这样做:
Prelude> :set args gecode_compile
Run Code Online (Sandbox Code Playgroud)