通常在Haskell项目中,我要么与ghci交互式工作,要么用cabal构建编译整个项目。
但是,在某些用例中,我可能会有一个计算密集型的例程以及一些更高级别的脚本功能,比如选择分析算法的输入。
是否可以使用GHCi + GHC,以便编译计算密集型模块,加载已编译的代码以使用GHCi中的不同输入重新运行?
答案 0 :(得分:5)
是的,您可以在ghci中加载已编译的模块;如果存在适当命名的.hi
和.o
文件,ghci将使用这些文件而不是解释相应.hs
文件中的代码。然后,您将只能访问从该模块导出的操作。
如果您在需要解释的模块时发现自己使用已编译的已加载模块,则可以:load *foo.hs
指示ghci忽略已编译的版本并解释foo.hs
。