如何为 GHCi 设置程序的命令行参数?

发布于 2024-12-27 05:12:18 字数 205 浏览 1 评论 0原文

假设使用 Now 执行某个 Haskell 文件

runghc Queens.hs gecode_compile

,但失败了,我想使用 ghci 来调试它。如何将选项 gecode_compile 传递到程序中,以便 getArgs 能够正确读取它?

谢谢!!

Suppose some Haskell file is executed with

runghc Queens.hs gecode_compile

Now, this fails, and I want to debug it with ghci. How do I pass the option gecode_compile into the program, so getArgs will read it correctly?

Thanks!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

海未深 2025-01-03 05:12:18

中设置命令行参数

ghci> :set args foo bar
ghci> main

您还可以在 ghci或

ghci> :main foo bar

You can also set the command line arguments in ghci

ghci> :set args foo bar
ghci> main

or

ghci> :main foo bar
难得心□动 2025-01-03 05:12:18

您可以使用 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

You can use the System.Environment.withArgs function to execute main with your desired arguments.

Here's an example session (irrelevant details elided):

$ 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
过气美图社 2025-01-03 05:12:18

您可以使用 :set 命令:

Prelude> :set args whatever

这意味着 getArgs 返回 ["whatever"]

所以在你的情况下你应该这样做:

Prelude> :set args gecode_compile

You can use the :set command:

Prelude> :set args whatever

This will mean that getArgs returns ["whatever"].

So in your case you should just do this:

Prelude> :set args gecode_compile
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文