我想编写一个(以某种方式)增强的 sum 函数,它一次需要多个索引,但我不明白如何让它工作。这是我目前拥有的:
(%i1) nsum(indexes, expr) :=
if indexes = []
then expr
else nsum(rest(indexes), sum(expr, first(indexes),1, N)) $
(%i2) nsum([i,j], i+j), nouns;
sum: index must be a symbol; found intosym(first(indexes))
#0: nsum(indexes=[k,j],expr=k+j)
我认为这可以通过在传递给函数first(indexes)
之前强制 Maxima 扩展为符号来解决。sum
我试过''(...)
and ev(..., nouns)
,但没有任何成功。