Curso de Raku / Avanzado / Más sobre los tipos integrados

Conjuntos, bolsas y mezclas

Además de los arrays y los hashes, Raku ofrece algunos contenedores especializados para colecciones de valores. El más simple es el Set — una colección desordenada de valores distintos, donde cada valor es miembro o no lo es, y los duplicados se ignoran.

Puedes crear un set con la rutina set. Los valores repetidos se reducen a uno solo:

my $s = set(1, 2, 3, 2, 1);
say $s.elems; # 3

Aunque se pasaron cinco números, el set tiene solo tres elementos, porque 1 y 2 aparecieron más de una vez.

La pregunta principal que le haces a un set es si un valor pertenece a él. El operador (que se lee “es un elemento de”) devuelve un Booleano:

say 2set(1, 2, 3); # True
say 9set(1, 2, 3); # False

Si prefieres quedarte con ASCII simple, el mismo operador se puede escribir como (elem):

say 2 (elem) set(1, 2, 3); # True

Los siguientes temas muestran cómo combinar sets, e introducen los bags y los mixes, que son parientes cercanos del set.

Temas de esta sección

Práctica

Resuelve 1 cuestionario sobre el contenido de esta sección.

Ejercicios

Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.

  1. Contar los distintos
  2. Elementos comunes
  3. Contar en una bolsa

Solución: Día de la semana   |   Operaciones de conjuntos