gpt4 book ai didi

pari-gp - 如何在PARI/GP中使多行嵌套for循环?

转载 作者:行者123 更新时间:2023-12-04 13:51:47 25 4
gpt4 key购买 nike

如何在PARI/GP中创建跨越每个级别的多行的嵌套循环?我经常需要在循环中做很多事情,并且出于可读性的考虑,我不喜欢在单行上编写循环。对于一个变量的循环,我一直在这样做:

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运行它们。

最佳答案

与我们期望的类似C的语法相反,花括号未在
GP。它们仅允许将指令序列拆分为多个
连续的行。他们不嵌套;另一方面,您可以嵌套循环
在单个{}块中:

{
for (i = 1, 10,
for (j = 1, 10,
print (i+j)))
}

多行命令通常在用户功能中找到,并且可能看起来
在这种情况下更自然:
fun(a, b) =
{
for (i = 1, a,
for (j = 1, b,
print (i+j)));
}

关于pari-gp - 如何在PARI/GP中使多行嵌套for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com