小编Myr*_*ium的帖子

如何使用'stack ghci'导入而不是在启动时加载模块?

我有一个名为的haskell包prime-tools.当我stack ghci在包目录中使用时,我希望它能够ghci自动打开一个交互式import prime-tools.相反,我发现它加载了.cabal文件中声明的所有模块.

例如,以下是我的.cabal文件中的摘录,显示了声明了哪些模块:

library
  -- Modules exported by the library.
  exposed-modules:     PrimeTools.MathStuff, PrimeTools.Factors, PrimeTools.PQTrials, PrimeTools.Main, PrimeTools.Base, PrimeTools.Lucas

  -- Modules included in this library but not exported.
  other-modules:       PrimeTools.Extras
Run Code Online (Sandbox Code Playgroud)

这是在项目文件夹中ghci>运行后收到提示时发生的情况stack ghci:

Ok, modules loaded: PrimeTools.MathStuff, PrimeTools.Factors, PrimeTools.PQTrials, PrimeTools.Main, PrimeTools.Base, PrimeTools.Lucas, PrimeTools.Extras.
ghci> 
Run Code Online (Sandbox Code Playgroud)

这个问题加载模块,而不是import prime-tools是,我现在可以使用在所有的模块定义的所有功能,无论他们是否出口.

这种区别引起的问题的一个例子:包prime-tools中有两个模块,它们具有一个被称为函数的实现pfactor.其中一个是导出的,打算由程序包的最终用户使用,而另一个仅供内部使用而不导出.

在有人评论之前,有充分的理由有两个实现pfactor,但它与我的问题无关.


我的问题:如何使用本地版本stack自动启动ghci环境ghc …

haskell ghci haskell-stack

5
推荐指数
1
解决办法
404
查看次数

标签 统计

ghci ×1

haskell ×1

haskell-stack ×1