Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Контексты / Exercises / Элемент или список
Решение: Элемент или список
Вот возможное решение задачи.
Код
my @a = 1, 2, 3;
my $count = 0;
my $x = $(@a);
$count++ for @($x);
say $count;🦋 Исходный код можно найти в файле item-or-list.raku.
Вывод
3Комментарии
my $x = $(@a)принудительно задаёт контекст элемента, поэтому весь массив упаковывается в один скаляр$x, а не раскрывается.@($x)затем принудительно задаёт контекст списка, раскрывая$xобратно в три элемента. Циклfor, таким образом, выполняется три раза, оставляя счётчик равным3. Два контекстуализатора являются точными противоположностями:$( )упаковывает список в один элемент,@( )распаковывает его обратно.