2

我又是一个关于 Haskell 和 Leskah 的新手问题。

(首先,对 Haskell 爱好者的主观赞美:每次回来学习 Haskell 时,我越来越喜欢它。我希望这会持续很长时间 :-)。最近的乐趣是 Leskah 将符号自动转换为数学的糖。它使代码看起来非常好。但这不是重点……)

我想将我的学习者包组织成几个文件。但是我没有成功地将包含其他定义的第二个文件(例如 Second.hs)添加到我当前的包构建单元中。我已将它添加到 Leskah/Edit Package/Extra Files 中。但这似乎不起作用。此外,我觉得以这种方式添加每个新文件(通过 Leskah/Edit Package/Extra Files)有点尴尬。

无论如何,结果所构建的仍然只是我的 Main.hs 的内容。我肯定错过了一些观点?!

另一个问题是,在 C++ 中,我大量使用namespace以便按主题/目标对我的对象定义进行排序。Haskell 中命名空间的等价物是什么?一个模块?一袋 ?

4

1 回答 1

3

关于 leksah:您可以通过浏览器面板添加新模块。只需右键单击并从上下文菜单中选择“添加模块”(注意:在对话框中输入模块名称,而不是文件名)。从包编辑器添加模块只是为了将现有模块添加到 cabal 文件中。(如果您不知道“阴谋集团”是什么意思,那么现在是谷歌搜索的好时机:))

关于命名空间。我认为最接近的等价物是模块。您只需导入模块即可将定义添加到当前上下文。或者,您可以导入合格的模块,在这种情况下,您必须从模块中限定定义。您也可以在导入时“别名”模块名称。

import Module1
import qualified Modile2
import Module3 as M3
import qualified Modile4 as M4

包相当于 C/C++ 中的编译库。

于 2011-01-16T00:24:07.800 回答