human
Veuillez expliquer ce que sont les "types de données algébriques"
gpt
En programmation informatique , en particulier en programmation fonctionnelle et en théorie des types , un type de données algébrique (ADT) est une sorte de type composite , c'est-à-dire un type formé en combinant d'autres types.
Deux classes courantes de types algébriques sont les types de produits (c'est-à-dire les tuples et les enregistrements) et les types de somme (c'est-à-dire les unions étiquetées ou disjointes, les types de coproduits ou les types de variantes).
Les valeurs d'un type de produit contiennent généralement plusieurs valeurs, appelées champs. Toutes les valeurs de ce type ont la même combinaison de types de champs. L'ensemble de toutes les valeurs possibles d'un type de produit est le produit théorique des ensembles, c'est-à-dire le produit cartésien, des ensembles de toutes les valeurs possibles de ses types de champ.
Les valeurs d'un type de somme sont généralement regroupées en plusieurs classes, appelées variantes. Une valeur d'un type variant est généralement créée avec une entité quasi-fonctionnelle appelée constructeur. Chaque variante a son propre constructeur, qui prend un nombre spécifié d'arguments avec des types spécifiés. L'ensemble de toutes les valeurs possibles d'un type somme est la somme théorique des ensembles, c'est-à-dire l'union disjointe, des ensembles de toutes les valeurs possibles de ses variantes. Les types énumérés sont un cas particulier des types somme dans lesquels les constructeurs ne prennent aucun argument, car exactement une valeur est définie pour chaque constructeur.
Les valeurs des types algébriques sont analysées avec le pattern matching, qui identifie une valeur par son constructeur ou ses noms de champ et extrait les données qu'elle contient.
Les types de données algébriques ont été introduits dans Hope, un petit langage de programmation fonctionnel développé dans les années 1970 à l'Université d'Édimbourg.