1

我认为 Maxima 中的块的目的是保护全局变量不被意外重新分配。但是,我对块的不同部分的角色/规则并不完全清楚。

例如,如果定义函数:

function():=
    block(
    [
     a:1,
     b:2,
     c:a,
     d:b
    ],
     [c,d]);
      );

执行此函数会产生function(); >> [ a, b ]. 最初,我期望[ 1 , 2 ]; 但是,在查阅文档后,我看到它说:

请注意,块变量中的赋值是并行完成的。

我的意思是,在上面,c:a并且d:b被分配给尚未声明的变量ab.

因此,如果我想在一个块中拥有依赖于其他变量的变量,那么正确的方法是:

function():= block([ a:1, b:2 ], block([ c:a, d:b], [ c, d]) );

它似乎给出了正确的结果,但这对我来说似乎有点迂回,所以我不禁想知道是否有更直接的方法?我也不清楚何时在[ ]节中声明变量很重要(块的各个部分是否有名称?)。任何见解将不胜感激。

4

0 回答 0