gpt4 book ai didi

haskell - 使用 Haskell 源代码从不同文件夹导入文件

转载 作者:行者123 更新时间:2023-12-02 20:53:54 25 4
gpt4 key购买 nike

假设我有一些文件夹布局如下:

\Code
\Haskell
\euler
\P1.hs
\P2.hs
\P3.hs
\fermat
\GS
\primes.hs

我在 primes.hs 中编写了一些函数,我想在 P3.hs 中使用它们。有没有一种方法可以将函数从 primes.hs 加载到 P3.hs 中,而无需复制和粘贴代码,类似于导入同一个文件夹?这可以用 Cabal 来完成吗(我对 Haskell 还很陌生,我还没有机会熟悉 Cabal)?我知道有一些方法可以通过使用 ghci 手动加载 primes.hs 来实现,但我希望能够运行 P3.hs 并让它工作。

最佳答案

如果您创建 cabal项目这非常简单。我会推荐这样的结构

project-name/
src/
Euler/
P1.hs
P2.hs
P3.hs
Fermat/
GS/
Primes.hs

然后当你 cd /path/to/project-name ,运行cabal init ,按照提示填写信息,然后就完成了。您需要做的最后一件事是设置模块名称。模块的名称应该反射(reflect)它在 src 中的位置。文件夹,并且由于所有模块名称都必须以大写字母开头,这意味着您需要确保文件夹的大写字母也正确。在这里你将拥有模块 Euler.P1 , Euler.P2 , Euler.P3 ,和Fermat.GS.Primes 。将模块名称声明为 module Module.Name where根据需要在每个文件中,然后您可以根据需要相互导入。模块导入始终是完全限定的,因此如果您想导入 src/Euler/P1.hssrc/Euler/P2.hs ,你需要这样做 import Euler.P1

一路上您可能会遇到一些障碍,但从长远来看,使用 cabal 来管理您的项目非常有用。了解基础知识后,您将能够轻松设置项目。

关于haskell - 使用 Haskell 源代码从不同文件夹导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808641/

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