кортежи против записей - PullRequest
       26

кортежи против записей

21 голосов
/ 18 ноября 2010

В чем разница между кортежами и записями?

Ответы [ 3 ]

11 голосов
/ 18 ноября 2010

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

Определения

Кортеж - это упорядоченная группа элементов, например (10, 25).

Запись обычно представляет собой группу именованных элементов, таких как { "x": 10, "y": 25 }, где значение имеет два поля, помеченные x и y, а значение поля x равно 10.

Морфологические

Слово «кортеж» происходит от общего суффикса «-tuple» в терминах «quintuple», «sextuple», «septuple», «octuple», что означает группы из 5, 6, 7 и 8 соответственно.

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

 value address     field x    field y
 0xABCD            10         25
 0x1234            42         "xyz"

Эквивалентность видов продукции

Вы можете рассматривать кортеж как своего рода запись, где индексом элемента в кортеже является его имя в эквивалентной записи, поэтому (10, 25) равно { "0": 10, "1": 25 }. Я полагаю, что в стандартном ML и родственных языках записи используются как базовая единица объединения типов ( алгебраические типы данных предоставляют дизъюнкцию типов) и таким образом рассматривают кортежи как своего рода записи.

5 голосов
/ 18 ноября 2010

Согласно Википедии:

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

Я бы сказал, что между кортежем и записью мало различий.

0 голосов
/ 05 декабря 2016

Запись - это полный ряд элементов данных одной таблицы, скажем, у студента есть запись под номером №. 3 в одной таблице, где tuple - это супернабор записей, в которых данные также принадлежат другим таблицам, например, ряды записей ученика катят № 3 в других таблицах во взаимосвязи, то есть посещаемость, результаты, контакты, оплата и т. д. Таким образом, весь набор данных одного ученика из всех таблиц является кортежем. Как я это знаю. Спасибо.

...