Rakudo no implementa el lol ("lista de listas") forma, sin embargo, y por lo tanto no puede analizar @a;@b;@c
. Por la misma razón, zip
no tiene un formulario que todavía contenga tres listas. Claramente, el mensaje de error es menos que impresionante.
Todavía no es realmente una buena solución, pero esto es algo que va a hacer el trabajo:
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;
}