Come posso creare loop annidati in PARI/GP che si estendono su più righe ad ogni livello? Spesso devo fare più cose all'interno di loop, e per la leggibilità non mi piace scrivere i miei loop su una singola riga. Per un ciclo su una variabile, ho fatto questo:Come rendere i loop multi-linea nidificati in PARI/GP?
for(i=1,10,{
printf("%u\n",i);
})
Tuttavia, per cicli annidati sono riuscito solo a mettere interruzioni di linea a un certo livello. Questo funziona:
for(i=1, 10, for(j=1, 10, {
printf("%2u\t%2u\n", i, j);
}));
Questo funziona anche:
for(i=1, 10, {
for(j=1, 10, printf("%2u\t%2u\n", i, j));
});
Tuttavia, questo è quello che mi piacerebbe davvero fare:
for(i=1, 10, {
for(j=1, 10, {
printf("%2u\t%2u\n", i, j);
});
});
Quest'ultimo esempio non funziona; dà un errore:
*** sorry, embedded braces (in parser) is not yet implemented.
... skipping file 'nested_for.gp'
*** at top-level: printf("%2u\t%2u\n",
*** ^--------------------
*** printf: not a t_INT in integer format conversion: i.
*** Break loop: type 'break' to go back to GP
Sto usando PARI/GP 2.5.3 su OS X 10.8.3. Scrivo i miei script in un file nested_for.gp
e li eseguo utilizzando gp ./nested_for.gp
in Bash.
Benvenuti in Stack Overflow, e grazie mille. –
PS. Penso che ci dovrebbero essere virgole sul secondo ciclo per ciascuno dei blocchi di codice. Altrimenti funziona alla grande. –
concesso. Ho appena corretto i frammenti! –