如何在Haskell中发布可用于其他程序的模块?

如何在Haskell中发布可用于其他程序的模块?,haskell,Haskell,我是Haskell的初学者,我这里有一个问题,如何发布或构建一个可以在其他程序中使用的模块? 例如,当我使用Java时,我可以编写一些类和函数,并使其成为一个可以在另一个程序中使用的jar。那么,哈斯克尔的情况如何?是否有必要使用与源代码相同的函数、模块? 谢谢。 如果您愿意与所有人共享您的库及其源代码,那么将其上传到Hackage是很常见的。使用任何常见Haskell构建工具构建的其他项目都知道如何与Hackage软件包交互 如果希望有选择地共享库及其源代码,可以将其上载到私有或公共githu

我是Haskell的初学者,我这里有一个问题,如何发布或构建一个可以在其他程序中使用的模块? 例如,当我使用Java时,我可以编写一些类和函数,并使其成为一个可以在另一个程序中使用的jar。那么,哈斯克尔的情况如何?是否有必要使用与源代码相同的函数、模块? 谢谢。

  • 如果您愿意与所有人共享您的库及其源代码,那么将其上传到Hackage是很常见的。使用任何常见Haskell构建工具构建的其他项目都知道如何与Hackage软件包交互

  • 如果希望有选择地共享库及其源代码,可以将其上载到私有或公共github存储库,并且可以将其用作堆栈依赖项

  • 如果您想在本地与自己共享库,堆栈支持取决于本地路径

  • 如果希望在不共享源代码的情况下共享库,可以公开C-api并生成DLL


请参阅:。这是否意味着Haskell DLL相当于Java中的jar?如果您可以发布源代码,您可能应该创建一个Cabal包,以便其他人可以通过运行
Cabal install
来编译和安装它。为了完整起见,我想我应该补充一点,让其他人可以使用您的库的通常方法是将其上载到;其他人可以使用Cabal将您的包添加为依赖项。然后包管理器将下载包并构建它,允许在您的程序中使用它的模块。(编辑:格式化)哦,谢谢,我现在可能知道了。我写了一些工具,打包,我可以上传到Hackage,让它可以下载和安装。另外,我可以根据它制作另一个程序。我说得对吗?