17

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

来自http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html
Prelude:默认导入所有 Haskell 模块的标准模块

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

谢谢。

另请参阅: Python 模块和 Python 包之间有什么区别?

4

1 回答 1

20

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

是一组有意义的模块,它们可以放在一起并且可以在程序或另一个库中使用。

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

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

于 2013-06-08T11:09:48.537 回答