Курс Raku / Розширені / Докладніше про вбудовані типи

Множини, мультимножини та суміші

Окрім масивів і хешів, Raku пропонує кілька спеціалізованих контейнерів для наборів значень. Найпростіший із них — Set, невпорядкований набір різних значень, де кожне значення або є членом, або ні, а дублікати ігноруються.

Множина створюється підпрограмою set. Повторювані значення злипаються в одне:

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

Хоча передано п’ять чисел, множина має лише три елементи, бо 1 і 2 траплялися більш ніж один раз.

Головне запитання, яке ставлять множині, — чи належить їй значення. Оператор (читається як «є елементом») повертає булеве значення:

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

Якщо вам зручніше лишатися в межах чистого ASCII, той самий оператор можна записати як (elem):

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

Наступні теми показують, як поєднувати множини, і знайомлять із мультимножинами та сумішами — близькими родичами множини.

Теми цього розділу

Практика

Виконайте 1 тест за змістом цього розділу.

Вправи

У цьому розділі 3 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.

  1. Порахувати унікальні
  2. Спільні елементи
  3. Підрахунок у мультимножині

Навігація курсом

Розв’язання: День тижня   |   Операції з множинами