在返回时改变函数参数

时间:2016-11-16 12:16:30

标签: maxima

假设以下示例

g(x):=block([],
  x:x+1
);

xx:1$;
g(xx)$;
xx;

这会输出1。我怎样才能输出2

编辑:我搜索了" maxima"结合"通过引用传递"并且结果似乎没有暗示"通过引用"真的是千里马定义的东西,但如果你知道我的意思,这就是我想要的。

2 个答案:

答案 0 :(得分:1)

您可以使用(生成最大代码的实用程序)。

(%i1) g(x)::=buildq([x], x : x + 1) $
(%i2) a: 1 $
(%i3) g(a) $
(%i4) a ;
(%o4)                                  2

答案 1 :(得分:1)

我认为你的麻烦只是你有%和;在xx分配行中。

这对我有用:

g(x):=block([],
  x:x+1
);

XX:1;

克(XX);