Разница между типами и сортами

11

Это может быть очень простой вопрос.

Но в чем разница между типами и сортами?

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

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

Зелиг
источник
1
Значение терминов зависит от контекста. Можете ли вы привести примеры использования типов и сортов, о которых вы спрашиваете ?:
Джереми
1
И тогда есть виды. И занятия.
lukstafi
@ Джереми Ответы дали мне более четкую картину отношений. У меня не было примеров, когда мне было неясно, что происходит в конкретной ситуации, но мне было интересно, есть ли смысл в выборе конкретного термина. Спасибо.
Селиг
1
Согласно записи в Википедии «Вид» , a kind- это тип конструктора типа или, реже, тип оператора типа более высокого порядка.
Дэвид Тонхофер

Ответы:

15

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

«Сортировка» используется, когда мы хотим сказать, что есть несколько разных, ну, в общем, видов вещей, которые мы должны различать. Примером может служить теория геометрии с видами «точка» и «линия».

«Тип» используется, когда требуется не только различать разные виды вещей, но и должное внимание уделяется структуре самих видов / типов. Таким образом, обычно мы можем формировать новые типы из старых (продукты, суммы, типы функций), у нас могут быть интересные отношения между типами (равенство типов, подтипирование) и т. Д. Напротив, обычно вначале указываются только некоторые виды, и тогда никогда не обращаешь особого внимания на структуру класса всех видов.

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

Андрей Бауэр
источник
9

Как говорит Андрей, ни один из терминов не является полностью формальным и не говорит о примерно одинаковых вещах, поэтому на самом деле нет четкой разделительной линии.

Что касается меня, я думаю, что слово «сортировка» происходит из теории моделей (как в многосортной логике первого порядка), и поэтому я использую слово «сортировка», чтобы предположить, что существует теоретико-множественная интерпретация множеств и жители. Идея состоит в том, что если является термином, а является родом, то существуют такие интерпретации, что подразумевает .σ t : σ [tσt:σ[[t]][[σ]]

Я не делаю этого предложения при использовании слова «тип». Существует множество теорий типов, которые не имеют простых теоретико-множественных интерпретаций, и многие из них весьма актуальны для программирования. Таким образом, если является выражением, а является типом, то суждение не обязательно предполагает какое-либо чтение в стиле членства.τ e : τeτe:τ

Нил Кришнасвами
источник
Просто чтобы уточнить: в скобках т и сигма означает «интерпретация»? В каком случае «подразумевается» лучше было бы записать как «означает, что»?
Дэвид Тонхофер
1
Я имею в виду «если у вас есть производная от , это означает, что интерпретация является элементом интерпретации ». t σt:σtσ
Нил Кришнасвами