Rakudo еще не реализовал форму lol ("список списков") и поэтому не может проанализировать @a;@b;@c
. По той же причине zip
не имеет формы, которая еще принимает три списка. Ясно, что сообщение об ошибке меньше, чем просто удивительно.
На самом деле пока нет хорошего обходного пути, но вот кое-что, что выполнит работу:
sub zip3(@a, @b, @c) {
my $a-list = flat(@a.list);
my $b-list = flat(@b.list);
my $c-list = flat(@c.list);
my ($a, $b, $c);
gather while ?$a-list && ?$b-list && ?$c-list {
$a = $a-list.shift unless $a-list[0] ~~ ::Whatever;
$b = $b-list.shift unless $b-list[0] ~~ ::Whatever;
$c = $c-list.shift unless $c-list[0] ~~ ::Whatever;
take ($a, $b, $c);
}
}
for zip3(@a,@b,@c) -> $nth_a, $nth_b, $nth_c {
say $nth_a ~ $nth_b ~ $nth_c;
}