Тип продукта

редактировать

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

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

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

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

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

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

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

Пример

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

См. Также
Ссылки
Последняя правка сделана 2021-06-02 07:34:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте