Подтвердить что ты не робот

Как установить аргументы командной строки для GHCi?

Предположим, что файл Haskell выполняется с

runghc Queens.hs gecode_compile

Теперь это не удается, и я хочу отладить его с помощью ghci. Как передать опцию gecode_compile в программу, поэтому getArgs будет читать ее правильно?

Спасибо!!

4b9b3361

Ответ 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"].

Итак, в вашем случае вы должны просто сделать это:

Prelude> :set args gecode_compile