Haskell类型类的可能实现是什么,它们的(缺点)有什么优点?


9

据我所知,具有类型类约束的Haskell函数在内部被编译为带有附加参数的函数,该参数接收带有每个特定类型类的必要实现的字典。

  • 还有其他可能的方式来编译类型类吗?
  • 如果是这样,它们的(缺点)有哪些优点?
  • 哪些编译器使用它们?

4
关于这个主题有很多文献。也许从J. Peterson,M. Jones的Implementing Type Classes开始。您还可以查看Oliveira等人的《作为对象和隐式类型类》,该类在Scala的背景下进行了讨论,但其中有很大一部分涉及相关工作。
Martin Berger 2012年


1
@MartinBerger可以回答这个问题吗?
Suresh Venkat 2012年

另一个可以在这里找到。
Martin Berger 2012年

@Suresh Venkat,我不想回答这个问题,因为我不确定这两个是最好的,甚至是好的答案。自从我研究功能语言的实现以来已经有一段时间了。也许有些居民FP的BOD的可插入内容。
马丁伯杰

Answers:


8

JHC使用不同的方法。编译器的中间语言是依赖类型的lambda演算,其中类型和值之间没有区别。因此,JHC可以对函数的类型参数执行案例分析,并直接调用正确的重载函数。

JHC 网站在实现方面以及与标准字典传递实现相比的优势方面进行了深入研究。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.