请看这个例子
f(a,{e})={ispower(a,3,&e)}
我这样做是为了将结果存储在e中,但当我调用函数时f(27,t(程序不存储";3〃;in t有什么帮助吗
您不能有指向自己函数的指针可选参数(至少在2.11版本中没有(
如果您更改f
的定义以按值返回值e
:
f(a)={my(e); [ispower(a,3,&e), e]}
现在f(27)
返回数组[1, 3]
。
在最新的2.13中,应该有一种通过引用传递参数的方法:请参阅https://pari.math.u-bordeaux.fr/archives/pari-announce-20/msg00006.html
但是,语法建议您需要定义f(a, ~e) = ispower(a,3,&e)
,并且仍然需要将其用作f(a, ~t)
或f(a, &t)
,以便将值输入t
。(老实说,我不确定这是否可行——2.13增强的目的是允许通过引用地图和列表进行调用,在以前的版本中,这些地图和列表是按值复制调用的(。
顺便说一句,{}不会将参数标记为可选参数。所有参数始终是可选的。如果不提供值,则PARI将保留未分配的参数。