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

Что такое стиль Haskell для полиморфизма?

С классами типа Haskell почти кажется, что он позволяет ad hoc-полиморфизм, но его объявления функций кажутся параметрическим полиморфизмом. Я смешиваю свое понимание разных вещей?

4b9b3361

Ответ 1

Действительно, Haskell поддерживает как параметрический полиморфизм (более высокий ранг), так и ad hoc (или ограниченный) полиморфизм. Параметрический полиморфизм в Haskell поддерживается через систему Hindley-Milner/System F. Ad hoc-полиморфизм поддерживается с помощью классов типов.

Для происхождения типов классов и специального полиморфизма см. документы Вадлера:

Для возникновения различия между параметрическим и специальным полиморфизмом вы можете выкопать статьи Страхи,