首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“现代”HList?

“现代”HList?
EN

Stack Overflow用户
提问于 2012-08-22 17:57:37
回答 1查看 2K关注 0票数 30

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

我已经阅读了可扩展记录页面上记录的许多项目,唯一真正的竞争对手(即作为可供黑客使用的库实现的竞争对手)是记录包。还是可扩展记录中缺少链接?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-22 20:22:07

这些方案中任何一个的问题是其目标的范围。HList实际上是5种不同的标签实现,两种类型相等的实现,两种类型转换,两种记录/记录P,以及变体与TIC的选择。所有这些都是相似的,但在易用性、可移植性和所使用的扩展方面都是不同的权衡。

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

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

"Haskell不支持子种类和子种类多态性。但是,这个包可以用来模拟子种类*和子种类变量。“

但是,由于在新的GHC版本中将数据类型推广到了各种类型,这不再是真的。因此,2012年1月的一揽子计划可能已经过时了。

至于记录,也许一个新的系统将借鉴最新一轮多态透镜:透镜和/或透镜家族

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12078792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档