Différence entre les types et les tris

11

Cela peut être une question très simple.

Mais quelle est la différence entre les types et les sortes?

Ma compréhension actuelle est que vous avez une théorie des types avec des règles de type qui donnent une notion d'une instruction bien typée mais les tris sont plus basiques, différenciant les symboles en différents types de symboles et introduisant des règles de base sur l'application des fonctions, etc.

Il y a peut-être peu de différence, peut-être viennent-ils simplement de différents domaines. Mais je n'arrive pas à trouver une description claire de leur relation.

selig
la source
1
La signification des termes dépend du contexte. Pouvez-vous donner des exemples de l'utilisation des types et des types dont vous parlez?:
Jeremy
1
Et puis il y a des sortes. Et des cours.
lukstafi
@Jeremy Les réponses m'ont donné une image plus claire de la relation. Je n'avais aucun exemple où je ne savais pas ce qui se passait dans une situation particulière, mais je me demandais s'il y avait une importance dans le choix d'un terme particulier. Merci.
selig
1
Selon l'entrée de Wikipédia sur "Kind" , a kindest le type d'un constructeur de type ou, plus rarement, le type d'un opérateur de type d'ordre supérieur.
David Tonhofer

Réponses:

15

La façon dont je comprends la différence est que les deux concepts sont utilisés pour donner une importance légèrement différente, mais en fin de compte, ils sont un peu la même chose. Étant donné que ni l'un ni l'autre n'a de définition formelle, nous ne pouvons pas attendre une réponse exacte sans d'abord limiter la portée à une compréhension particulière du «type» et du «tri».

"Trier" est utilisé lorsque nous voulons dire qu'il y a plusieurs sortes de choses que nous devons distinguer. Un exemple serait une théorie de la géométrie avec les sortes "point" et "ligne".

"Type" est utilisé lorsque non seulement il est nécessaire de distinguer différentes sortes de choses, mais une attention particulière est accordée à la structure des sortes / types eux-mêmes. Ainsi, généralement, nous pouvons former de nouveaux types à partir d'anciens (produits, sommes, types de fonctions), nous pouvons avoir des relations intéressantes entre les types (égalité de types, sous-typage), etc. En revanche, on spécifie généralement quelques sortes au début, et alors ne prête jamais beaucoup d'attention à la structure de la classe de toutes sortes.

C'est du moins ainsi que je perçois la différence, d'autres personnes peuvent avoir des expériences différentes.

Andrej Bauer
la source
9

Comme Andrej le dit, aucun des deux termes n'est complètement formel et parle à peu près du même genre de choses, donc il n'y a pas vraiment de ligne de démarcation claire.

tσt:σ[[t]][[σ]]

eτe:τ

Neel Krishnaswami
la source
Juste pour clarifier: le t et le sigma entre crochets signifient "l'interprétation de"? Dans quel cas le "implique" serait mieux écrit comme "signifie que"?
David Tonhofer
1
t:σtσ