首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出不同层次结构的haskell模块

导出不同层次结构的haskell模块
EN

Stack Overflow用户
提问于 2014-06-15 09:14:53
回答 1查看 169关注 0票数 3

在Haskell中,包含模块的模块名称和文件名必须相同。问题不仅在于文件名,还包括所有路径,因此您必须(AFAIK)创建一个与模块层次结构相匹配的目录结构,这有点烦人。

例如,假设我在一个模块M中编写数据类型D,我认为它应该在Database中。模块名应该是Database.M.T。由于我的主目录已经被称为M(包的名称),所以我的目录结构如下:

代码语言:javascript
复制
M:
|
+-- Database:
    |
    +-- M:
        |
        + A.hs

你能这样做吗?

代码语言:javascript
复制
M:
|
+ A.hs

并将M输出为Database.M

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-15 09:56:57

这在目前是不可能的,除非使用符号链接或类似于指向Database.MM,这将在可移植性和版本控制方面出现各种问题。

Simon在几个月前为GHC提出了一个新的选项来增加对别名的支持:http://www.haskell.org/pipermail/glasgow-haskell-users/2014-April/024920.html

他的想法是,您可以使用ghc选项的新变体来运行-i

代码语言:javascript
复制
ghc -iDatabase.M=M

然后,M文件夹中的任何内容都将被视为Database.M的一部分。

您还可以将新选项放在hs-source-dirs字段中的.cabal文件中。

然而,人们对这项建议有各种各样的反对意见,所以他暂时撤回了它。主要的问题是它增加了复杂性,其他几个工具(例如cabal)也需要修改以支持它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24228157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档