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