посмотрите на этот пример, пожалуйста
f(a,{e})={ispower(a,3,&e)}
я сделал это, чтобы сохранить результат в e, но когда я вызываю функцию как f (27, t), программа не сохраняет 3 в t, никакой помощи
посмотрите на этот пример, пожалуйста
f(a,{e})={ispower(a,3,&e)}
я сделал это, чтобы сохранить результат в e, но когда я вызываю функцию как f (27, t), программа не сохраняет 3 в 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 оставит параметр неназначенным.