gpt4 book ai didi

haskell - runhaskell 可以从 .ghci 中获取选项吗?

转载 作者:行者123 更新时间:2023-12-04 15:22:08 24 4
gpt4 key购买 nike

很多人包括.ghci在他们的 haskell 项目中添加文件以包含将模块加载到 ghci 中所需的选项.这是一个例子:

:set -isrc -itest -iexamples -packagehspec2

但是,当尝试运行包含 main 的文件时通过 runhaskell必须重复所有这些选项,例如:
runhaskell -isrc -itest -iexamples -packagehspec2 test/Spec.hs

有没有好办法让 runhaskell.ghci 中选择选项文件?

最佳答案

我不知道有什么方法可以制作runhaskell工作。我所做的只是管道 "main"到 ghci:

$ echo main | ghci -v0 test/Spec.hs

如果你想传递命令行参数,也可以:
$ echo ':main -m "behaves correct"' | ghci -v0 test/Spec.hs

或者您可以将其包装在脚本中:
#!/usr/bin/env runhaskell
>import System.IO
>import System.Environment
>import System.Exit
>import System.Process
>
>main :: IO ()
>main = do
> source:args <- getArgs
> (Just h, Nothing, Nothing, pid) <- createProcess (proc "ghci" ["-v0", source]) {std_in = CreatePipe}
> hPutStr h ("import System.Environment\nSystem.Environment.withArgs " ++ show args ++ " main\n")
> hClose h
> waitForProcess pid >>= exitWith

可以这样使用:
$ ./run.lhs test/Spec.hs -m "behaves correct"

关于haskell - runhaskell 可以从 .ghci 中获取选项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26668605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com