По большинству определений общие или базовые типы алгебраических данных в Haskell или Scala - это сумма и произведение. Примеры: 1, 2.
Иногда в определении просто говорится, что алгебраические типы данных - это сумма и произведение, возможно, для простоты.
Однако определения оставляют впечатление, что возможны и другие типы алгебраических данных, а сумма и произведение являются наиболее полезными для описания выбора или комбинации элементов.
Учитывая, что в базовой алгебре есть операции вычитания, деления и возведения в степень целого числа - правильно ли, что в программировании возможна реализация других альтернативных алгебраических типов, но они бесполезны?
Реализованы ли в каких-либо языках программирования алгебраические типы данных, не являющиеся типами сумм и продуктов?
A -> B
. (PS Я подхожу к этому вопросу, имея опыт работы с Haskell. Я вообще не знаю Scala.) - person Robin Zigmond   schedule 28.12.2019