如何将以下集合转换为表达式
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}
不能保证生成的集的条目的显示顺序与原始集的顺序相同。因此,将集合用于这种一般的事情永远不会正常工作。
这就是为什么我在上周回答你关于这个主题的许多问题时使用了嵌套列表而不是嵌套集。您当前的问题表明您没有遵循我的建议。