再次向我提出一个关于Haskell和Leskah的新手问题。
(首先,对Haskell爱好者的主观恭维:每次回来参加Haskell的学习会议我越来越喜欢它。我希望这会持续很长时间:-)。最新的乐趣是Leskah用于将符号自动转换为数学的糖。它使代码看起来非常好。但那不是重点......)
我想将学习者包整理成几个文件。 但我没有成功添加第二个文件,例如Second.hs,包含其他定义,到我当前的包构建单元。我在Leskah / Edit Package / Extra Files中添加了它。但这似乎没有做到这一点。更多的我感觉因为以这种方式添加任何新文件(通过Leskah /编辑包/额外文件)有点笨拙。
无论如何,所有构建的内容仍然只是我的Main.hs内容。我肯定错过了一些观点?!
另一个问题是,在C ++中,我大量使用namespace
,以便按主题/目标对对象定义进行排序。 Haskell中命名空间的等价物是什么?一个模块?一套 ?
答案 0 :(得分:3)
关于leksah:您可以通过“浏览器”面板添加新模块。只需右键单击并从上下文菜单中选择“添加模块”(注意:在对话框中输入模块名称,但不输入文件名)。从包编辑器添加模块只是为了将现有模块添加到cabal文件中。 (如果你不知道“cabal”是什么意思,那么现在是google它的好时机:))
关于命名空间。我认为最近的等价物是模块。您只需导入模块即可将定义添加到当前上下文中。或者,您可以导入模块限定,在这种情况下,您必须限定模块中的定义。您也可以在导入时“别名”模块名称。
import Module1
import qualified Modile2
import Module3 as M3
import qualified Modile4 as M4
Package相当于C / C ++中的编译库。