假设以下示例
g(x):=block([],
x:x+1
);
xx:1$;
g(xx)$;
xx;
这会输出1
。我怎样才能输出2
?
编辑:我搜索了" maxima"结合"通过引用传递"并且结果似乎没有暗示"通过引用"真的是千里马定义的东西,但如果你知道我的意思,这就是我想要的。
答案 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);