这有点长,所以请耐心等待!
我在使用 Haskell 程序时遇到了一些麻烦,我必须将其用作 uni 项目的一部分。作为参考,它是Casper。
所以,你应该执行一个脚本,它实际上是一个 Bash 脚本来调用 Hugs 解释器,如下所示:
exec $HUGSBIN/hugs $HUGSARGS +p"Casper> " $FILES
其中 $FILES 指向 Main.lhs 文件。
在此之后,我需要在解释器中调用一个带有文件路径的函数“编译”。
我需要以脚本方式执行上述操作。我需要这个自动化,因为我正在编写一个将在后台调用 Casper 的程序。
所以我编译了 .lhs 文件。现在我想执行“编译”功能,但我不知道这是怎么做的。我尝试:
./Main compile <a path>
从命令行,但它返回给我一个关于找不到文件“测试”的错误。经过调查,我在 Main.lhs 文件中看到了这些行:
>main :: String -> IO()
>main = compile "test"
>compile :: String -> IO()
>compile s = catch (compile0 False s) handler
[...snipped]
第二行解决了这个问题。现在我的问题是,我如何在编译 main.lhs 后调用“编译”函数并传递一个路径?在解释器中,我只需键入“compile”,它就可以工作,但是在编译 main.lhs 并从命令行执行之后,我不能让它工作?任何想法为什么?如果所有其他方法都失败了,我有什么办法可以编写 Hugs 脚本吗?
感谢您的任何帮助!