Cursus Raku / Geavanceerd / Meer over ingebouwde types

Sets, bags en mixes

Naast arrays en hashes biedt Raku een aantal gespecialiseerde containers voor verzamelingen van waarden. De eenvoudigste is de Set — een ongeordende verzameling van unieke waarden, waarbij elke waarde er ofwel in zit of niet, en duplicaten worden genegeerd.

Je maakt een set aan met de set-routine. Herhaalde waarden worden samengevoegd tot een:

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

Hoewel er vijf getallen zijn meegegeven, bevat de set slechts drie elementen, omdat 1 en 2 meer dan eens voorkwamen.

De belangrijkste vraag die je aan een set stelt, is of een waarde erin voorkomt. De operator (lees: “is een element van”) geeft een Boolean terug:

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

Als je liever gewone ASCII gebruikt, kan dezelfde operator geschreven worden als (elem):

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

De volgende onderwerpen laten zien hoe je sets kunt combineren, en introduceren bags en mixes, die nauw verwant zijn aan de set.

Onderwerpen in deze sectie

Praktijk

Maak de 1 quiz over de inhoud van deze sectie.

Oefeningen

Deze sectie bevat 3 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.

  1. Tel de unieke
  2. Gemeenschappelijke elementen
  3. Tellen in een bag

Cursusnavigatie

Oplossing: Dag van de week   |   Set-operaties