为什么类型类难以实现?

时间:2012-03-07 13:12:23

标签: haskell ghc typeclass

this演示文稿的幻灯片30/78上,Simon建议类型类的实现在开始时是一种“绝望”。有谁知道那是为什么?

1 个答案:

答案 0 :(得分:77)

我想我是少数几个亲身经历过为何难以解决的人之一,因为我在没有现有技术时在hbc中实现了它。

因此,Wadler& Blott的论文清楚地表明,类型检查是Hindley-Milner类型检查的扩展,并且在运行时你应该通过字典。从那到实际的实施是一个相当大的步骤。理解这个难点的一个好方法是从Wadler-Blott论文开始实际实现它。

首先,您需要提出一种类型检查器的概念,它不仅可以检查类型,还可以转换程序;在类型检查时插入证据(词典)。您还需要弄清楚如何使用实例声明作为推理系统从旧的字典构造新的字典。

回想起来,这一切看起来都很明显,但请记住,从那时起,许多有解释的论文都被写了。了解如何从论文中做某事与首先提出它有很大的不同。

此外,您希望类型类具有合理的效率,从而导致其自身的一系列问题。

相关问题