gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:40:51 24 4
gpt4 key购买 nike

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

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

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

是否可以这样做:
M:
|
+ A.hs

并导出 MDatabase.M ?

最佳答案

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

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

他的想法是你可以运行 ghc带有 -i 的新变体选项:

ghc -iDatabase.M=M

然后是 M 中的任何内容文件夹将被视为 Database.M 的一部分如你所愿。

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

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

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

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