Haskell 怎样引用一个本地模块?

网上比较容易搜到 Haskell 的 Wiki, 但是写的内容非常不照顾新手,
比如说 calbal init 生成 Module 了, 怎么样在本地引用呢?
我的场景里, 调试的代码分成两个本地模块开发, 需要怎样进行引用?
还有, 从网上下载安装模块的时候, 是怎样安装, 怎样管理的呢?

阅读 5.7k
3 个回答

大抵说下我学习用cabal来build以及引用build的module的心得吧。

假定你是用Linux的(我用的ubuntu,windows下没有做过尝试)。

一个传统的流程是:
1. cabal init,就会创建一个project
2. 在创建的project目录中编写代码
3. 测试完成后, 修改project目录中的.cabal配置文件, 然后cabal configurecabal build
4. cabal build

如果按照上面的流程走下去,那么编写的library或者executable会被安装到~/.cabal中去,可以直接引用了。

不过目前似乎更提倡使用sandbox来build,使用sandbox的流程是:
1. cabal init
2. cabal sandbox init
3. 编写代码,以及修改.cabal文件
4. cabal configure
5. cabal build
6. cabal install

这个时候,project不是被安装到了~/.cabal,而是被安装到了你的project目录中的.cabal-sandbox中,此时,如果别的本地project想要引用这个project,需要使用cabal sandbox add-source /path/to/dependency/library/

cabal configure
cabal build
cabal install

本地模块的运用很简单

  1. 只需要在cmd或terminal更改当前目录至本地模块文件夹中,输入命令ghci,Enter, 然后:l <module_name>

  2. 记得采纳。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进