各レベルで複数の行にまたがる PARI/GP でネストされたループを作成するにはどうすればよいですか? 多くの場合、for ループ内で複数のことを行う必要があり、読みやすくするために、ループを 1 行で書くのは好きではありません。1つの変数をループするために、私はこれを行ってきました:
for(i=1,10,{
printf("%u\n",i);
})
ただし、ネストされたループの場合、改行を 1 つのレベルに配置することしかできませんでした。これは機能します:
for(i=1, 10, for(j=1, 10, {
printf("%2u\t%2u\n", i, j);
}));
これも機能します:
for(i=1, 10, {
for(j=1, 10, printf("%2u\t%2u\n", i, j));
});
しかし、これは私が本当にやりたいことです:
for(i=1, 10, {
for(j=1, 10, {
printf("%2u\t%2u\n", i, j);
});
});
この最後の例は機能しません。エラーが発生します:
*** 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
OS X 10.8.3 で PARI/GP 2.5.3 を使用しています。スクリプトをファイルに書き込んで、Bash でnested_for.gp
実行します。gp ./nested_for.gp