Тип продукта - Product type

В языки программирования и теория типов, а товар из типы - другой, составной тип структуры. "Операнды" продукта типы, а структура типа продукта определяется фиксированным порядком операндов в продукте. Экземпляр типа продукта сохраняет фиксированный порядок, но в противном случае может содержать все возможные экземпляры его примитивные типы данных. Выражением экземпляра типа продукта будет кортеж, и называется "кортежным типом" выражения. Продукт типов - это прямой продукт двух и более типов.

Если имеется только два типа компонентов, это можно назвать «парным». Например, если два типа компонентов А и B представляют собой набор всех возможных значений этого типа, записанный тип продукта А × B содержит элементы, которые являются парами (a, b), где "a" и "b" являются экземплярами А и B соответственно. Тип пары - это частный случай тип зависимой пары, где тип B может зависеть от экземпляра, выбранного из А.

На многих языках типы продуктов имеют форму записывать тип, для которого к компонентам кортежа можно получить доступ метка. На языках, в которых есть алгебраические типы данных, как и в большинстве функциональное программирование В языках алгебраические типы данных с одним конструктором изоморфны типу продукта.

в Переписка Карри – Ховарда, типы продуктов связаны с логическое соединение (И) в логике.

Это понятие непосредственно распространяется на продукт произвольного конечного числа типов (n-арный тип продукта), и в этом случае оно характеризует выражения, которые ведут себя как кортежи выражений соответствующих типов. Вырожденная форма типа продукта - это тип единицы: это продукт без типов.

В вызов по стоимости языков программирования, тип продукта можно интерпретировать как набор пар, первым компонентом которых является ценить в первом типе, а второй компонент - значение во втором типе. Короче говоря, это декартово произведение и это соответствует товар в категории типов.

Наиболее функциональное программирование языки имеют примитивное понятие типа продукта. Например, продукт тип1, ..., типп написано тип1 * ... * типп в ML и (тип1,...,типп) в Haskell. В обоих этих языках кортежи пишутся (v1,...,vп) а компоненты кортежа извлекаются сопоставление с образцом. Кроме того, многие языки функционального программирования предоставляют более общие алгебраические типы данных, которые расширяют как product, так и типы сумм. Типы продуктов - это двойной типов сумм.

пример

Примером типа продукта является тип вектора в векторное пространство или алгебра над полем: тип - это произведение числового типа и типа направления. Так, например, брошюра для Международная система единиц В начале раздела 1.1 говорится: «Значение количества обычно выражается как произведение числа на единицу», а также представлено произведение единицы измерения Ньютона и метра с математическим обозначением произведения: Ньютон-метр (Н · м или Н · м). Это правильно указывает на векторное пространство характер единиц СИ над абелева группа из размеры при умножении, а поле из действительные числа - единицы СИ образуют алгебра над полем.

Смотрите также

Рекомендации