Ответ 1
Вы также можете задать аргументы командной строки в ghci
ghci> :set args foo bar
ghci> main
или
ghci> :main foo bar
Предположим, что файл Haskell выполняется с
runghc Queens.hs gecode_compile
Теперь это не удается, и я хочу отладить его с помощью ghci
. Как передать опцию gecode_compile
в программу, поэтому getArgs
будет читать ее правильно?
Спасибо!!
Вы также можете задать аргументы командной строки в ghci
ghci> :set args foo bar
ghci> main
или
ghci> :main foo bar
Вы можете использовать функцию 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
Вы можете использовать команду :set
:
Prelude> :set args whatever
Это означает, что getArgs
возвращает ["whatever"]
.
Итак, в вашем случае вы должны просто сделать это:
Prelude> :set args gecode_compile