如何在 PARI/GP 中创建跨越每个级别的多行的嵌套循环?我经常需要在 for 循环中做很多事情,而且为了可读性,我不喜欢将循环写在一行上。对于一个变量的循环,我一直在这样做:
for(i=1,10,{
printf("%u\n",i);
})
但是,对于嵌套循环,我只设法将换行符放在一个级别。这有效:
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。我将脚本写入文件并使用Bashnested_for.gp
运行它们。gp ./nested_for.gp