Параметрический полиморфизм против специального полиморфизма

Я хотел бы понять ключевое различие между параметрическим полиморфизмом, таким как полиморфизм общих классов / функций в языки Java / Scala / C ++ и "специальный" полиморфизм в системе типов Haskell. Я знаком с первым типом языков, но я никогда не работал с Haskell.

Точнее:

  1. Как работает алгоритм вывода типов, например, в Java отличается от вывода типов в Haskell?
  2. Приведите мне пример ситуации, когда что-то может быть написано на Java / Scala, но не может быть написано на Haskell (в соответствии с модульными возможностями этих платформ) и наоборот.

Заранее спасибо.

51
задан Vikas Tikoo 8 February 2018 в 15:54
поделиться

1 ответ

Специальный полиморфизм также возможен в Scala, использующем классы типа. Посмотрите следующую деку слайда для большого введения: https://www.slideshare.net/pjschwarz/ad-hoc-polymorphism-using-type-classes-and-cats

enter image description here

0
ответ дан 7 November 2019 в 10:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: