El tipo abstracto de datos de los conjuntos en Haskell

En este artículo continúo la serie dedicada a los tipos de datos abstractos (TAD) en Haskell. El objetivo de la serie es la elaboración del tema de TAD del curso de Informática del Grado en Matemáticas.

En el artículo anterior presenté el TAD de polinomios. En éste voy a presentar los TAD de conjuntos y sus implementaciones en Haskell.

Al igual que hice en el de polinomio usaré módulos, importaciones cualificadas, indefiniciones y funciones de escritura para conseguir la abstracción e independencia de los resultados de las implementaciones.

El contenido del resto del artículo es el siguiente: el TAD de los conjuntos y su implementación mediante listas no ordenadas con y sin duplicados, el TAD de los conjuntos ordenados y su implementación mediante listas ordenadas sin duplicados, el TAD de los conjuntos de números naturales y su implementación
mediante números binarios.

Conjuntos.hs: El TAD de los conjuntos

Implemetación de los conjuntos mediante listas no ordenadas con duplicados

Implemetación de los conjuntos mediante listas no ordenadas sin duplicados

ConjuntosOrd.hs: TAD de los conjuntos ordenados

Implementación de los conjuntos ordenados mediante listas ordenadas sin duplicados

ConjuntoInt.hs: TAD de los conjuntos de números enteros

Implementación de los conjuntos de números naturales mediante números binarios