Haskell模块导入路径导航

时间:2018-01-21 06:25:28

标签: haskell

我有一个像这样的目录结构

a
- a.hs
- b
-- b.hs
- c
-- c.hs

我想将c.hs导入b.hs但我无法弄清楚如何上一个目录并进入b。通常这会是../c/c.hs

Haskell的做法是什么?

1 个答案:

答案 0 :(得分:1)

通常,您不会保存“仅代码”,而是保存模块module ModuleName where。模块保存在反映模块名称的文件名和路径下,因此您将拥有文件ADirectory/A.hs(请注意开头的大写字母),该文件以module ADirectory.A where开头,与其他文件相同。

编写代码后,人们将模块收集到包中。  由于使用cabal-install工具(或替代方法,stack),有时会被称为“cabalization”,这可以通过cabal init完成,并确保您的cabal文件列出每个模块。

文件ADirectory/A.hs等内部模块可以导入其他模块。例如,A可以通过B导入import BDirectory.B

最后,如果还不是很明显,那么import语句指的是编译器必须已安装的模块。无法根据文件系统路径导入内容。