使用`ghc -e`运行Haskell代码时是否可以传递命令行参数?

时间:2017-04-03 14:14:32

标签: haskell ghc

直观地说,我已经尝试了

$ ghc -e "import System.Environment" -e "getArgs" -- a b c
ghc: unrecognised flag: --
did you mean one of:
  -n
  -F
  -v

Usage: For basic information, try the `--help' option.
$

......没有成功。

我期待输出符合["a","b","c"]

The docs here似乎没有提到任何通过cli参数的方法。

stdio中的AFAIK管道按预期工作。

也许如果不能用ghc -e传递参数,也许仍然可以用ghci提供一些代码,一些参数,运行,然后退出?

1 个答案:

答案 0 :(得分:1)

回答问题的第二部分:

Prelude> :help :main
 Commands available from the prompt: 
   …
   :main [<arguments> ...]     run the main function with the given arguments
   …
Prelude> let main = System.Environment.getArgs >>= print
Prelude> :main foo bar
["foo","bar"]