Які можливі реалізації класів типів Haskell і які їх переваги?


9

Наскільки мені відомо, функція Haskell з обмеженнями класів типів внутрішньо компілюється у функцію з додатковими аргументами, які отримують словники з необхідними реалізаціями кожного конкретного класу типу.

  • Чи є інші можливості, як компілювати класи типів?
  • Якщо так, то які їх (не) переваги?
  • І які компілятори ними користуються?

4
Існує зовсім небагато літератури з цього приводу. Можливо, почніть з впровадження класів типу Дж. Петерсон, М. Джонс. Ви також можете розглядати типи класів як об'єкти та наслідки Олівейри та ін., Який розповідає про це в контексті Scala, але має досить великий розділ щодо пов'язаних робіт.
Мартін Бергер


1
@MartinBerger зробить це відповіддю?
Суреш Венкат

Іншого можна знайти тут .
Мартін Бергер

@ Суреш Венкат, я не хотів, щоб це було на відповідь, тому що я не впевнений, що це двоє найкращих чи навіть хороших відповідей. Минув час, коли я переглянув реалізацію функціональних мов. Може бути , деякі з резидентів FP СД може дзвонити в.
Мартін Бергер

Відповіді:


8

JHC використовує інший підхід. Проміжна мова компілятора - це лямбда-числення, залежно від типу, де немає різниці між типами та значеннями. Таким чином, JHC може виконати аналіз випадку щодо параметра типу функції та безпосередньо викликати правильну перевантажену функцію.

Веб- сайт JHC заглиблюється у реалізацію, а також його переваги перед впровадженням стандартного словника.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.