Math 将值传递到用户外部';PARI-GP中的s定义函数

Math 将值传递到用户外部';PARI-GP中的s定义函数,math,return-value,user-defined-functions,pari,pari-gp,Math,Return Value,User Defined Functions,Pari,Pari Gp,我想写一个函数交换来交换PARI中的2个整数a和b。此函数不返回任何值,但我希望函数外部的变量存储新值。我不知道怎么解决这个问题。这是我的职责: swap(a,b) = { t=a; a=b; b=t;} 然后我写: u=2; v=3; swap(u,v); 十个u仍然是2,v仍然是3。如何重写此函数以使u=3和v=2?谢谢。不幸的是,您无法为标量变量实现这样的交换函数。从PARI/GP v2.13.0开始,您可以使用~前缀通过引用用户定义的函数来传递容器变量(如列表、向量等),以便修改其组

我想写一个函数交换来交换PARI中的2个整数a和b。此函数不返回任何值,但我希望函数外部的变量存储新值。我不知道怎么解决这个问题。这是我的职责:

swap(a,b) = { t=a; a=b; b=t;}
然后我写:

u=2; v=3;
swap(u,v);

十个u仍然是2,v仍然是3。如何重写此函数以使u=3和v=2?谢谢。

不幸的是,您无法为标量变量实现这样的
交换
函数。从PARI/GP v2.13.0开始,您可以使用
~
前缀通过引用用户定义的函数来传递容器变量(如列表、向量等),以便修改其组件。因此,对于版本>=2.13.0的PARI/GP,您可以进行如下示例所示的简单操作:

swap(~a,~b) = {[a[1],b[1]] = [b[1],a[1]];};

u = [2]; v = [3];
swap(~u, ~v);
u
> [3]
v
> [2]

它起作用了。非常感谢你的帮助!!!