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