如何从C++管理ghci?

0 c++ terminal haskell function

我有一个.hs文件,其中有一个Haskell函数.我的C++程序应该运行ghci,调用函数,然后将输出写入文本文件,然后退出ghci.我认为这可以轻松完成system(),我可以用它来管理终端,并做所有这些好事.但是当我执行时system("ghci"),C++程序暂停并等待我完成Haskelling.

如何从C++运行Haskell程序?

Mat*_*hid 6

取决于你想要做什么......

  • 如果你有一个完整的Haskell 程序,你可以使用GHC 编译它,然后像任何其他程序一样运行生成的编译程序.

  • 或者,该runhaskell命令采用源代码文件的名称并为您运行它,而无需先编译它.(尽管如此,它仍然需要包含一个完整的,可运行的程序.)

  • 如果您有包含多个函数的源文件,则可以使用在指定模块中ghc Module.hs -e expression运行任意Haskell 表达式.

  • 最后,您可以尝试将Haskell代码编译成动态库并将其链接到您的C++代码中...但这确实非常复杂.

  • 也可以将GHC称为图书馆......但同样,这样做非常复杂.