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?
答案 0 :(得分:11)
模块是一组函数,类型,类......放在一个公共命名空间中。
库是一组模块,它们在一起是有意义的,可以在程序或其他库中使用。
包是一个可以包含库或可执行文件或两者的分发单元。这是与社区共享代码的一种方式。
请注意,库不必隔离在包中。也就是说,在项目中使用该库中的库是完全可以接受的。因此,为了清晰和可维护性,代码与其余部分分开。这也是将一些通用功能与业务逻辑代码隔离开的好方法,如果需要,最终可以在项目之间或与社区共享此lib。