В чем разница между «классом» в Haskell и «абстрактным классом» в объектно-ориентированном языке?

На первый взгляд, существуют очевидные различия между двумя видами «классов». Однако я считаю, что есть больше общего:

  • Оба имеют разные типы конструкторов.
  • Оба определяют группу операций, которые могут быть применены к определенному типу данных, другими словами, они оба определяют интерфейс.

Я вижу, что "класс" в Haskell гораздо более краток и к тому же более эффективен. Но у меня такое ощущение, что теоретически «класс» и «абстрактный класс» идентичны.

Каково ваше мнение?

5
задан Don Stewart 23 April 2011 в 22:51
поделиться