Tipo de datos algebraicos


En programación de computadoras , especialmente programación funcional y teoría de tipos , un tipo de datos algebraicos es un tipo de tipo compuesto , es decir, un tipo formado por la combinación de otros tipos.

Dos clases comunes de tipos algebraicos son los tipos de productos (es decir, tuplas y registros ) y los tipos de suma (es decir, uniones etiquetadas o disjuntas , tipos de coproductos o tipos de variantes ). [1]

Los valores de un tipo de producto suelen contener varios valores, denominados campos . Todos los valores de ese tipo tienen la misma combinación de tipos de campo. El conjunto de todos los valores posibles de un tipo de producto es el producto de la teoría de conjuntos, es decir, el producto cartesiano , de los conjuntos de todos los valores posibles de sus tipos de campo.

Los valores de un tipo de suma suelen agruparse en varias clases, denominadas variantes . Un valor de un tipo de variante generalmente se crea con una entidad cuasifuncional llamada constructor . Cada variante tiene su propio constructor, que toma un número específico de argumentos con tipos específicos. El conjunto de todos los valores posibles de un tipo de suma es la suma teórica de conjuntos, es decir, la unión disjunta , de los conjuntos de todos los valores posibles de sus variantes. Los tipos enumerados son un caso especial de tipos de suma en los que los constructores no toman argumentos, ya que se define exactamente un valor para cada constructor.

Los valores de los tipos algebraicos se analizan con coincidencia de patrones , que identifica un valor por su constructor o nombres de campo y extrae los datos que contiene.

Los tipos de datos algebraicos se introdujeron en Hope , un pequeño lenguaje de programación funcional desarrollado en la década de 1970 en la Universidad de Edimburgo . [2]