Вопрос

Suppose some Haskell file is executed with

runghc Queens.hs gecode_compile

Now, this fails, and I want to debug it with ghci. How do I pass the option gecode_compile into the program, so getArgs will read it correctly?

Thanks!!

Это было полезно?

Решение

You can also set the command line arguments in ghci

ghci> :set args foo bar
ghci> main

or

ghci> :main foo bar

Другие советы

You can use the System.Environment.withArgs function to execute main with your desired arguments.

Here's an example session (irrelevant details elided):

$ 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

You can use the :set command:

Prelude> :set args whatever

This will mean that getArgs returns ["whatever"].

So in your case you should just do this:

Prelude> :set args gecode_compile
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top