我在哪里可以保存我的Haskell“模块”?

我把一些函数放在一个文件中。 在我的电脑上应该保存这个文件,以便我可以轻松地加载我的function?

我正在Windows 64位计算机上使用Haskell平台。

我通常把我的模块放在同一个目录树中,并在树的根目录下启动ghci 。 然后模块可以导入对方,我可以很容易地:load模块到交互ghci

 $ ghci .... loading .... Prelude> :load directory/subdirectory/mymodule.hs 

如果您希望您的模块可以从几个不同的项目访问,我建议为他们创建一个cabal包,并使用cabal install安装它。 发布到hackage是不需要的 – 没有参数的cabal install在当前目录中查找.cabal文件并安装相应的包。

如果您希望您的模块可以从单个项目访问,那么在分层文件夹树中组织源的通常做法也适用于Haskell。 让我举个例子:

 Hello/World.hs Foo/Bar.hs Quux.hs Hello.hs 

Hello/World.hs应该有module Hello.World where在头。 主模块应该有module Main ,但实际的文件名可以是任何东西(例如Quux.hs )。 在Foo/Bar.hs您可以使用import Hello.World 。 当你在ghci加载Foo/Bar.hs时,当前目录应该是你的树的根目录,否则它将找不到Hello.World。 您可以将模块名称而不是文件名称传递给ghci:例如ghci Hello.World将会工作。

这里是文档:

http://haskell.org/ghc/docs/latest/html/users_guide/separate-compilation.html

http://haskell.org/ghc/docs/latest/html/users_guide/packages.html