gpt4 book ai didi

haskell - "Modern"HList?

转载 作者:行者123 更新时间:2023-12-03 09:12:28 28 4
gpt4 key购买 nike

HList package是基于现在古老的 Haskell 技术。一个简单的问题是:考虑到过去 8 年 Haskell/GHC 开发的所有精彩新特性,“现代”HList 的构建方式会非常不同吗?我意识到这里的答案很可能是没有 ,对于 HList 的特殊情况,使用的技术仍然会产生最优雅的解决方案。

我已经阅读了 extensible records 中记录的许多项目。页面中,唯一真正的竞争对手(即作为 hackage 上可用的库实现的)是 records package .或者是否缺少来自 extensible records 的链接?

最佳答案

这些软件包中的任何一个的问题是其目标的范围。 HList 实际上是 5 种不同的标签实现,两种类型相等,两种类型转换,两种 Record/RecordP,以及 Variant vs TIC 选择。所有这些都相似,但在易用性、可移植性和使用的扩展方面有所不同。

较新的 GHC 特性(GADT、关联类型、约束类型、多态类型、单例类型)可能允许稍有不同的权衡取舍。特别是单例类型可能允许更好的标签,多态类型可能允许更优雅的 Typeable/Data/Generics 。

您链接到的“记录”包取决于声称的“种类”包:

"Haskell has no support for subkinds and subkind polymorphism. However, this package can be used to emulate subkinds of kind * and subkind variables."



但由于在新的 GHC 版本中将数据类型提升为种类,这不再适用。所以这个 2012 年 1 月的软件包现在可能已经过时了。

至于记录,也许会从最新一轮的多态镜头中提取一个新系统: lens和/或 lens-family .

关于haskell - "Modern"HList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12078792/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com