Курс Raku / Розширені / Контейнери / Контексти 🆕 / Вправи / Елемент чи список

Розв’язання: Елемент чи список

Ось один із можливих варіантів розв’язання задачі.

Код

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

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

🦋 Вихідний код можна знайти у файлі item-or-list.raku.

Вивід

3

Коментарі

  1. my $x = $(@a) задає штучний контекст, тож увесь масив пакується в єдиний скаляр $x, а не розгортається.

  2. Далі @($x) задає списковий контекст, розгортаючи $x назад у три елементи. Отже, цикл for виконується тричі, залишаючи лічильник рівним 3. Ці два контекстуалізатори є повними протилежностями: $( ) пакує список в один елемент, а @( ) розпаковує його назад.

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

Елемент чи список   |   Адверби індексів 🆕