Курс языка программирования Raku / Продвинутый уровень / Подробнее о встроенных типах / Множества, мультимножества и смеси

Операции над множествами

Множества можно комбинировать с помощью обычных операций из теории множеств. Каждый оператор имеет символ в Unicode и запись в ASCII; вы можете использовать любой вариант.

Объединение (или (|)) собирает все значения, которые есть хотя бы в одном из множеств:

say (set(1, 2, 3) ∪ set(3, 4, 5)).elems; # 5

Два множества имеют общее значение 3, поэтому объединение содержит пять различных элементов: 1, 2, 3, 4, 5.

Пересечение (или (&)) оставляет только те значения, которые есть в обоих множествах:

my $common = set(1, 2, 3) ∩ set(2, 3, 4);
say $common;       # Set(2 3) — обратите внимание, что множества неупорядочены
say $common.elems; # 2
say 2$common;   # True

Здесь пересечение содержит 2 и 3 — значения, присутствующие в обоих множествах. Множество не имеет определённого порядка, поэтому при выводе два элемента могут отображаться в любом порядке.

Результат этих операций сам является множеством, поэтому к нему можно задавать те же вопросы: сколько в нём элементов и принадлежит ли ему конкретное значение.

Практика

Пройдите 1 тест по содержанию этой темы.

Навигация по курсу

Множества, мультимножества и смеси   |   Тест — Множества


💪 Или перейдите сразу к упражнениям этого раздела.