Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Контексты / Exercises / Элемент или список

Решение: Элемент или список

Вот возможное решение задачи.

Код

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. Два контекстуализатора являются точными противоположностями: $( ) упаковывает список в один элемент, @( ) распаковывает его обратно.

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

Элемент или список   |   Наречия индексации