Вывод типов при вызове обобщенных методов с лямбдами и перегрузкой функций
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Алгоритм Хиндли-Милнера предназначен для вывода типов при наличии ограничений
Для компиляции он важен когда мы выводим типы параметров в вызове обобщенной функции, при этом в качестве параметров фигурируют ляибда-выражения.
Алгоритм Хиндли-Милнера описан в Пирсе, с.343 Его суть состоит в следующем. Имеется множество ограничений на типы, записываемое в виде равенств вида:
[X = integer, Y = X->X]
или
[X->Y = Y->Z, Z = U->W]
Требуется найти для этого множества ограничений наиболее общий унификатор.
Унификатором называется типовая подстановка