我希望我的函数在容器的末尾添加一个元素,尤其是矩阵。我似乎可以使用pass-by-reference来更改容器中现有的元素,但如果我试图使用concat((来更改容器的大小,我会得到错误的结果。
下面是一个工作示例:
v=[1];
r(~x)=x=concat(x,2);
v \ Should be [1,2]
%3 = [1]
我可以通过引用来完成此操作吗?还是需要通过值传递并进行新的赋值?如果是,这种行为是意料之中的事吗?我使用的是GP/Pari2.15.0。
首先,为了将其作为引用传递,还必须显式地用"当将v传递给r:CCD_ 1时。
还有其他问题:
- concat((的签名没有接收到作为引用的向量
- 向量是不可变的,所以没有办法用它来实现你想要的
您应该使用列表:
v = List([1])
listput(v, 2)
为了得到这些值,它就像任何使用";[]";。