2010-05-26 79 views
3

我在haskell中编写应用程序,我想将一些函数和数据类型导出到其他文件,然后能够在我的主文件中使用它们。将其他文件添加到haskell

如何做到这一点?

感谢您的帮助

回答

3

上哈斯克尔模块的Wikibooks page将是一个很好的起点,或者的relevant section了解您哈斯克尔(尤其是“让我们自己的模块”的一部分)。

5

你可以布置你的源代码如下所示:

Main.hs 
A/Module.hs 

你需要A/Module.hs哪个模块,它实际上是指定;它必须是:

module A.Module where 

... 

Main.hs,导入A.Module;所有名称都默认导出。

+0

但是在Haskell中,模块名称不具有与* com/example/Service.java中的Java类com.example.Service *具有*相同的含义。为了方便起见,个别编译器可以建立传统的对应关系,但是如果你真的想要,也可以告诉GHC(例如)在'SomeRandomDirectory/NotMyModule.hs'中找到'MyModule',并且更典型的是你的'Main'模块不必位于名为'Main.hs'的文件中。 – 2010-05-27 13:57:05

+0

这是真的;如果你愿意,你可以打破惯例。看到具有'src/A/Module.hs'的Cabal项目目录并不罕见。 你提出的更复杂的重定向,我从来没有尝试过。 – solidsnack 2010-05-27 18:10:46