Тип-сумма
Тип-сумма (англ. sum type; также Σ-тип, меченое объединение) — конструкция в языках программирования и интуиционистской теории типов, тип данных, построенный как дизъюнктное объединение исходных типов.
Наряду с типом-произведением является одной из важнейших форм алгебраического типа данных и одним из способов конструирования типов в интуиционистской теории типов и её вариантах. Перечисляемый тип может быть рассмотрен как вырожденная форма типа-суммы — размеченное объединение единичных типов (англ. unit types).
С точки зрения изоморфизма Карри — Ховарда, сопоставляющего типы данных и конструктивные математические доказательства, тип-сумма соответствует логической дизъюнкции.
Играют важную роль в языках семейства ML, таких как Standard ML, OCaml[1], Haskell[2] и других.
Примечания
- 6.2 Sum types - CHAPTER 6. USER-DEFINED TYPES / Functional programming using Caml Light (англ.): "A sum type is the finite labeled disjoint union of several types. A sum type definition defines a type as being the union of some other types."
- Gabriel Gonzalez, Sum Types Архивная копия от 12 августа 2015 на Wayback Machine / School of Haskell. To infinity and beyond. Pick of the Week (англ.)