Haskell中的模块,包和库有什么区别?

时间:2013-06-08 09:14:59

标签: haskell module package

Haskell中的模块,包和库有什么区别?

来自http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html
前奏:默认情况下将标准模块导入所有Haskell模块。

来自http://www.haskell.org/haskellwiki/Base_package
基础包:基本包含Prelude及其支持库,以及大量有用的,从数据结构到解析组合器和调试实用程序。

感谢。

另见: What's the difference between a Python module and a Python package?

1 个答案:

答案 0 :(得分:11)

模块是一组函数,类型,类......放在一个公共命名空间中。

是一组模块,它们在一起是有意义的,可以在程序或其他库中使用。

是一个可以包含库或可执行文件或两者的分发单元。这是与社区共享代码的一种方式。

请注意,库不必隔离在包中。也就是说,在项目中使用该库中的库是完全可以接受的。因此,为了清晰和可维护性,代码与其余部分分开。这也是将一些通用功能与业务逻辑代码隔离开的好方法,如果需要,最终可以在项目之间或与社区共享此lib。