将集合转换为表达式 Maple/将前缀更改为中缀表达式



如何将以下集合转换为表达式

Expression := {{a°b}, {a°x°y}} # ° can be any operator

所需输出为

result := {a°b, a°x°y}  #required output

我尝试使用如下所示的转换功能进行转换,

asString := convert(Expression, string);
with(StringTools):
asString :=Remove("{}", asString)
result := InertForm:-Parse(asString);

但我的输出是按前缀表达式的顺序排列的。

result := {"°(a,b(,°(°(a,x(,y("}

亲切问候

restart;
foo := {{a/b}, {a+x*y}}:
result := map(op, foo):
lprint(result);
{a/b, x*y+a}

不能保证生成的集的条目的显示顺序与原始集的顺序相同。因此,将集合用于这种一般的事情永远不会正常工作。

这就是为什么我在上周回答你关于这个主题的许多问题时使用了嵌套列表而不是嵌套。您当前的问题表明您没有遵循我的建议。

最新更新