Кортеж (информатика)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

В математике[править | править исходный текст]

В математике корте́ж или n-ка (упорядоченная n-ка) — упорядоченный конечный набор длины n (где n \in \mathbb{N}\cup \{0\}), каждый из элементов которого x_i принадлежит некоторому множеству X_i, 1\leqslant i \leqslant n. Элементы кортежа могут повторяться в нём любое число раз (этим, в частности, он отличается от упорядоченного множества, куда каждый элемент может входить только в одном экземпляре).

В математике кортеж обычно записывается перечислением элементов в круглых или угловых скобках.

В теории множеств кортеж обычно определяется индуктивно:

  • пустое множество — это кортеж (с нулевым количеством элементов);
  • для каждого кортежа (a_1, \ldots, a_n)=T, множество (a, a_1, \ldots, a_n)=\{a, \{a, T\}\} также является кортежем.

Элементы кортежа называются его компонентами, или координатами.

Кортеж длины нуль называется пустым.

Частными случаями кортежа является (по числу элементов) упорядоченная пара, тройка, четвёрка и т.д.

Многие математические объекты формально определяются как кортежи. Например, Ориентированный граф определяется как кортеж (V,E), где V — это набор вершин, а E — подмножество V × V, обозначающее рёбра. Точка в n-мерном пространстве действительных чисел определяется как кортеж длины n, составленный из элементов множества действительных чисел.

В программировании[править | править исходный текст]

В некоторых языках программирования, например, Python или ML, кортеж — особый тип данных. В языке Python кортеж (англ. tuple) отличается от списка тем, что элементы кортежа нельзя изменять.

 thing = "rose"
 colour = "red"
 print "%s is %s" % (thing, colour)

Эта программа на Python, использующая кортеж (thing, colour), выведет: rose is red

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

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

В языке C++ поддержка кортежей реализована как шаблон класса std::tuple[1] (начиная с C++11[2]) и в библиотеке Boost Tuple Library[3].

Кортеж является стандартным типом в платформе .NET начиная с версии 4.0[4]

В базах данных[править | править исходный текст]

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

Примечания[править | править исходный текст]

См.также[править | править исходный текст]

Тип-произведение

Ссылки[править | править исходный текст]