6
如何在PARI/GP中制作跨越每个级别多行的嵌套循环?我经常需要在循环内部做很多事情,为了可读性,我不喜欢在单行上编写循环。对于遍历一个变量,我一直在做这样的:如何在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。我将脚本写入文件nested_for.gp
,并在Bash中使用gp ./nested_for.gp
运行它们。
欢迎来到Stack Overflow,非常感谢。 –
PS。我认为每个代码块中的第二个for循环应该有逗号。否则,这很好。 –
授予。只是修复了片段! –