Каков стиль полиморфизма Хаскелла? - PullRequest
25 голосов
/ 15 апреля 2011

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

1 Ответ

31 голосов
/ 15 апреля 2011

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

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

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

...