发布于 2012-08-22 20:22:07
这些方案中任何一个的问题是其目标的范围。HList实际上是5种不同的标签实现,两种类型相等的实现,两种类型转换,两种记录/记录P,以及变体与TIC的选择。所有这些都是相似的,但在易用性、可移植性和所使用的扩展方面都是不同的权衡。
较新的GHC特性(GADT、关联类型、约束类型、多态类型、单例类型)可能允许略有不同的权衡。特别是单例类型可能允许更好的标签,多态类型可能允许更优雅的类型/数据/泛型。
链接到的“记录”包取决于声明的“种类”包:
"Haskell不支持子种类和子种类多态性。但是,这个包可以用来模拟子种类*和子种类变量。“
但是,由于在新的GHC版本中将数据类型推广到了各种类型,这不再是真的。因此,2012年1月的一揽子计划可能已经过时了。
https://stackoverflow.com/questions/12078792
复制相似问题