Haskell中单数词使用的实证研究

2020-09-17 03:42:13

Monad是一种嵌入和推理计算概念(如可变状态、I/O、异常和许多其他概念)的机制。尽管单体在技术上是语言不可知的,但它们大多与Haskell语言联系在一起。事实上,有人可能会争辩说,使用单音节是Haskell语言的定义特征之一。实际上,Haskell中的一元编程依赖于标准的MTL包库,该库提供了八个核心计算概念:标识、错误、列表、状态、读取器、写入器、RW和延续。尽管它们被广泛使用,但我们不知道有任何关于开发人员使用最多的Monad的实证调查。在这篇文章中,我们提供了一项经验研究,涵盖了黑客资源库中可用软件包的快照-覆盖了85135个软件包和500多万个哈斯克尔文件。据我们所知,这是第一次大规模分析关于单数及其依赖关系的黑客攻击。我们的结果显示,大约30.8%的包依赖于MTL包,而只有1.2%依赖于替代的、但兼容的实现。尽管如此,每个特定单体的使用模式对于MTL和备选方案都是相似的。最后,到目前为止,国家Monad是最受欢迎的,尽管它们都被使用了。我们还报告了使用MTL的包的分发情况,以及它们的类别和稳定性级别。

视图摘要