Ответ 1
Оба являются типами продуктов, которые позволяют создавать типы из нескольких более простых типов. Некоторые языки рассматривают кортежи как своего рода запись.
Определения
Кортеж представляет собой упорядоченную группу элементов, например (10, 25).
Обычно запись представляет собой группу именованных элементов, таких как { "x": 10, "y": 25 }
, где значение имеет два поля с меткой x
и y
, а значение поля x
равно 10
.
Морфологические
Слово "кортеж" происходит из общего суффикса "-tuple" на "пятикратном", "шестикратном", "септильном", "восьмерном", что означает группы из 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 и родственные языки используют записи как базовую единицу тип соединения (алгебраические типы данных обеспечивают дизъюнкцию типа) и рассматривают кортежи как своего рода запись таким образом.