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

时间:2011-10-28 19:26:45

标签: windows function haskell module

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

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

2 个答案:

答案 0 :(得分:9)

我通常将我的模块放在同一个目录树中,然后在树的根目录下启动ghci。然后模块可以相互导入,我可以轻松地:load模块交互ghci

$ ghci

.... loading ....

Prelude> :load directory/subdirectory/mymodule.hs

答案 1 :(得分:2)

如果您希望从几个不同的项目访问您的模块,我建议为他们创建一个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。在Foo/Bar.hs中加载ghci时,当前目录应该是树的根目录,否则它将找不到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