Тип-сумма (англ. sum type; также Σ-тип, меченое объединение) — конструкция в языках программирования и интуиционистской теории типов, тип данных, построенный как дизъюнктное объединение исходных типов.

Наряду с типом-произведением является одной из важнейших форм алгебраического типа данных и одним из способов конструирования типов в интуиционистской теории типов и её вариантах. Перечисляемый тип может быть рассмотрен как вырожденная форма типа-суммы — размеченное объединение единичных типов (англ. unit types).

С точки зрения изоморфизма Карри — Ховарда, сопоставляющего типы данных и конструктивные математические доказательства, тип-сумма соответствует логической дизъюнкции.

Играют важную роль в языках семейства ML, таких как Standard ML, OCaml[1], Haskell[2] и других.

Примечания править

  1. 6.2 Sum types - CHAPTER 6. USER-DEFINED TYPES Архивная копия от 4 марта 2016 на Wayback Machine / 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."
  2. Gabriel Gonzalez, Sum Types Архивная копия от 12 августа 2015 на Wayback Machine / School of Haskell. To infinity and beyond. Pick of the Week  (англ.)