Подтвердить что ты не робот

Почему трудно было реализовать классы типов?

На слайде 30/78 этой презентации Саймон предполагает, что внедрение классов типов было "отчаянием" в начале. Кто-нибудь знает, почему это было?

4b9b3361

Ответ 1

Я думаю, что я один из немногих людей, у которых есть опыт из первых рук, почему это было сложно, так как я реализовал его в hbc, когда не было никакого предшествующего уровня техники.

Итак, что было ясно из бумаги Wadler & Blott, было то, что проверка типов была расширением проверки типа Hindley-Milner и что во время выполнения вы должны пропускать словари. От этого до фактической реализации это довольно большой шаг. Хороший способ понять эту сложность состоит в том, чтобы на самом деле реализовать ее, начиная с только бумаги Вадлера-Блота.

Во-первых, вам нужно придумать идею проверки типа, которая не только проверяет типы, но и трансформирует программу; вставка доказательств (словарей) при проверке типов. Вам также нужно выяснить, как построить новые словари из старых, используя объявления экземпляра в качестве системы вывода.

В ретроспективе все может показаться очевидным, но помните, что с тех пор было написано много документов с объяснениями. Понимание того, как что-то делать с бумагой, сильно отличается от того, чтобы придумать это в первую очередь.

Кроме того, вы хотите, чтобы классы классов были достаточно эффективными, что приводило к его собственному набору проблем.