gpt4 book ai didi

haskell - 导出具有不同层次结构的 haskell 模块

转载 作者:行者123 更新时间:2023-12-02 01:48:10 28 4
gpt4 key购买 nike

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

例如,假设我正在模块 M 中编写数据类型 D,我认为它应该在 Database 中。模块名称应为 Database.M.T。由于我的主目录已经称为 M(包的名称),因此我最终得到以下目录结构:

M:
|
+-- Database:
|
+-- M:
|
+ A.hs

是否可以这样做:

M:
|
+ A.hs

并将 M 导出为 Database.M ?

最佳答案

目前这是不可能的,除非使用符号链接(symbolic link)或类似的方法将 Database.M 指向 M,这会在可移植性和版本控制方面产生各种问题。

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

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

ghc -iDatabase.M=M

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

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

然而,该提案遭到了各种反对,因此他暂时撤回了该提案。主要问题是它增加了复杂性,并且还必须更改其他几个工具(例如 cabal)以支持它。

关于haskell - 导出具有不同层次结构的 haskell 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228157/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com