【问题标题】:What's the difference between module, package and library in Haskell?Haskell 中的模块、包和库有什么区别?
【发布时间】:2013-06-04 13:52:33
【问题描述】:

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

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

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

谢谢。

另请参阅: What's the difference between a Python module and a Python package?

【问题讨论】:

  • 一个modules的集合,在语言报告中解释,以及版本和描述等数据。人们经常将包含主要用于其他项目的模块的包称为
  • @gspr if library 只是 package 的另一个名字,ezyang 说 Cabal 只支持一个公共库是什么意思每个包裹source
  • haskell 程序呢?

标签: haskell module package


【解决方案1】:

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

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

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

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

【讨论】:

  • 一个包也可以包含多个库吗?一个包可以在库内外包含不同的模块吗?由 Backpack 引入的签名和界面适用于何处?
  • "包是 Hackage 上的东西" 后者:stackoverflow.com/questions/5480982/…
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 2010-10-02
  • 1970-01-01
  • 2011-09-16
  • 2021-06-27
相关资源
最近更新 更多