Курс по 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. Пребройте в торба

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

Решение: Ден от седмицата   |   Операции с множества