Tengo una lista de listas de dos elementos, como lo que obtendrías, por ejemplo (1..5) Z (20..24), que quiero convertir en un hash (en este ejemplo, lo que obtienes {1 => 20, 2 => 21, 3 => 22, 4 => 23, 5 =>24}. Podría hacerlo "a mano", pero eso no es No es muy elegante, y estoy seguro de que Raku tiene una forma idiomática de hacerlo. La alternativa poco elegante que se me ocurre es:
my @a = (1..5) Z (20..24);
my %a;
for @a -> @x {
%a{@x[0]} = @x[1];

flatdebería funcionar.flataplanará múltiples niveles de una estructura de datos multinivel si los niveles sonLists. Pero si ya ha introducido no-Lists, por ejemplo, asignar los datos a unArraysin usarflatantes de hacerlo, entoncesflatya no será la herramienta correcta. Por ejemplo, si ha asignado usandomy @a = 1..5 Z 20..25;entoncesflatpor sí sola no hará el trabajo. Lo aplanaría asímy %h = @a[*;*];. He escrito un poco más sobre el uso de subíndices para aplanar datos de varios niveles aquí .((1, (1, 2, 3)), (2, (5, 6)), (17, (3, 4, 5, 92, 31))(es decir, el resultado final sería un hash con listas como valores)?