Cursus Raku / Geavanceerd / Containers / Contexten / Exercises / Item of lijst

Oplossing: Item of lijst

Hier is een mogelijke oplossing voor de opgave.

Code

my @a = 1, 2, 3;
my $count = 0;

my $x = $(@a);
$count++ for @($x);
say $count;

🦋 Je kunt de broncode vinden in het bestand item-or-list.raku.

Uitvoer

3

Opmerkingen

  1. my $x = $(@a) dwingt itemcontext af, zodat de hele array in de enkele scalar $x wordt verpakt in plaats van uitgespreid.

  2. @($x) dwingt vervolgens lijstcontext af en spreidt $x weer uit tot zijn drie elementen. De for-lus wordt daarom drie keer uitgevoerd, waardoor de teller op 3 komt. De twee contextomzetters zijn exacte tegengestelden: $( ) verpakt een lijst tot één item, @( ) pakt het weer uit.

Cursusnavigatie

Item of lijst   |   Subscript-adverbia