5. Conjuntos por extensión y por comprensión

Un conjunto puede definirse enumerando sus elementos o describiendo una propiedad común. Estas dos formas permiten expresar colecciones de manera clara según el tamaño, el patrón y el objetivo del problema.

5.1 Introducción

Los conjuntos pueden escribirse de distintas maneras. Dos de las más importantes son la representación por extensión y la representación por comprensión.

La representación por extensión enumera los elementos. La representación por comprensión describe una regla o propiedad que deben cumplir los elementos. Ambas formas son equivalentes cuando describen exactamente la misma colección.

5.2 Conjuntos por extensión

Un conjunto está definido por extensión cuando se escriben explícitamente todos sus elementos entre llaves.

A = {1, 2, 3, 4, 5}

Esta forma es directa y fácil de leer cuando el conjunto tiene pocos elementos o cuando queremos mostrar la colección completa.

5.3 Ejemplos por extensión

Conjunto Representación por extensión Descripción
Vocales V = {a, e, i, o, u} Enumera todas las vocales
Días laborales D = {lunes, martes, miércoles, jueves, viernes} Enumera los días de trabajo
Tecnologías web básicas W = {HTML, CSS, JavaScript} Enumera tres tecnologías concretas
Números pares menores que 10 P = {2, 4, 6, 8} Enumera todos los valores posibles

5.4 Ventajas de la representación por extensión

  • Es simple de leer cuando el conjunto es pequeño.
  • Muestra exactamente cuáles son los elementos.
  • Evita interpretar una regla cuando la lista completa es breve.
  • Es útil para ejemplos iniciales y casos concretos.

5.5 Límites de la representación por extensión

La representación por extensión no siempre es práctica. Si el conjunto tiene muchos elementos o infinitos elementos, escribirlos todos puede ser imposible o poco claro.

N = {1, 2, 3, 4, 5, 6, 7, ...}

En este caso se usan puntos suspensivos, pero aun así dependemos de que el patrón sea evidente. Cuando la regla es más importante que la lista, conviene usar comprensión.

5.6 Conjuntos por comprensión

Un conjunto está definido por comprensión cuando se describe una propiedad que deben cumplir todos sus elementos.

P = {x | x es un número natural par menor que 10}

Esta notación se lee: P es el conjunto de todos los valores x tales que x es un número natural par menor que 10.

5.7 Partes de la notación por comprensión

La notación por comprensión tiene tres partes principales: una variable, una barra vertical que se lee "tal que" y una condición o propiedad.

A = {x | x cumple una propiedad}
Parte Significado Ejemplo
x Variable que representa un posible elemento Un número a evaluar
| Se lee "tal que" Indica que sigue una condición
Propiedad Regla que decide pertenencia x es par y x < 10

5.8 Ejemplos por comprensión

Conjunto Representación por comprensión Equivalente por extensión
Números pares menores que 10 P = {x | x es natural, x es par y x < 10} {2, 4, 6, 8}
Números impares del 1 al 9 I = {x | x es natural, 1 ≤ x ≤ 9 y x es impar} {1, 3, 5, 7, 9}
Vocales V = {x | x es una vocal del alfabeto español} {a, e, i, o, u}
Usuarios activos U = {u | u.estado = "activo"} Depende de los datos del sistema

5.9 Equivalencia entre ambas formas

Dos representaciones son equivalentes cuando describen exactamente el mismo conjunto.

P = {2, 4, 6, 8} P = {x | x es natural, x es par y x < 10}

La primera línea enumera los elementos. La segunda línea describe la regla. Ambas representan el mismo conjunto.

5.10 Representación por comprensión en programación

En programación, la representación por comprensión se parece mucho a aplicar un filtro. La condición del filtro decide qué elementos pertenecen al resultado.

const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9];

const paresMenoresQueDiez = numeros.filter(numero => numero % 2 === 0);

console.log(paresMenoresQueDiez);

La condición numero % 2 === 0 representa la propiedad que deben cumplir los elementos del conjunto.

5.11 De arreglo a conjunto en JavaScript

Si queremos que el resultado no tenga elementos repetidos, podemos usar Set.

const etiquetas = ["web", "datos", "web", "lógica", "datos"];
const conjuntoEtiquetas = new Set(etiquetas);

console.log([...conjuntoEtiquetas]);

El arreglo original tiene valores repetidos, pero el conjunto conserva cada etiqueta una sola vez.

5.12 Cuándo usar cada forma

Situación Forma recomendada Motivo
Pocos elementos conocidos Extensión La lista completa es clara
Muchos elementos con una regla común Comprensión La propiedad es más compacta que la lista
Conjuntos infinitos Comprensión o patrón con puntos suspensivos No se pueden enumerar todos los elementos
Filtrado de datos en programas Comprensión como condición La regla decide qué datos entran al resultado

5.13 Errores frecuentes

  • Usar comprensión con una propiedad ambigua.
  • Escribir por extensión un conjunto demasiado grande sin necesidad.
  • Creer que los elementos repetidos cambian el conjunto.
  • Usar puntos suspensivos cuando el patrón no es claro.
  • No verificar que dos representaciones realmente describan los mismos elementos.

5.14 Qué debes recordar de este tema

  • Por extensión significa enumerar los elementos del conjunto.
  • Por comprensión significa describir una propiedad de pertenencia.
  • Ambas formas pueden representar el mismo conjunto.
  • La comprensión es especialmente útil para conjuntos grandes, infinitos o definidos por reglas.
  • En JavaScript, un filtro puede representar una condición de pertenencia.
  • Set permite representar colecciones sin elementos repetidos.

5.15 Conclusión

La representación por extensión y la representación por comprensión son dos formas complementarias de describir conjuntos. La primera muestra los elementos; la segunda muestra la regla que los define.

En el próximo tema estudiaremos conjuntos finitos, infinitos, vacío y universal.