请看这个例子
f(a,{e})={ispower(a,3,&e)}
我这样做是为了将结果存储在 e 中,但是当我将函数调用为 f(27,t) 时,程序不会将“3”存储在任何帮助中
您不能将指针可选参数指向您自己的函数(至少在 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 增强的目的是允许通过引用调用 Maps 和 Lists,在以前的版本中,它们是按值调用复制的)。
顺便说一句,{} 不会将参数标记为可选。所有参数始终是可选的。如果您不提供值,则 PARI 将保留未分配的参数。