Если у вас есть выход Maple, потому что вы генерируете его в Maple, то, возможно, вы можете создать желаемый вывод одновременно.
Трудно сделать его более применимым к вашей более широкой цели только с одним кратким примером.
Использование одинарных кавычек и вызовов 1-уровня eval
предотвращает нежелательную оценку (например, в противном случае Maple выдернет ведущий знак минус из вызова sin
).
ee := 'sin'(-1/(-1+x)/x):
lprint( eval(ee,1) );
sin(-1/(-1+x)/x)
ff := subsindets(eval(ee,1),specfunc(sin),u->'Sin'[op(u)]):
lprint( eval(ff,1) );
Sin[-1/(-1+x)/x]
sprintf("%a", eval(ff,1) );
"Sin[-1/(-1+x)/x]"
Или, если ваш оригинал является строкой, а не неоцененным вызовом функции,
restart;
s:="sin(-1/(-1+x)/x)";
s := "sin(-1/(-1+x)/x)"
gg:=parse(s):
lprint( eval(gg,1) );
sin(-1/(-1+x)/x)
ff := subsindets(eval(gg,1),specfunc(sin),u->'Sin'[op(u)]):
lprint( eval(ff,1) );
Sin[-1/(-1+x)/x]
sprintf("%a", eval(ff,1) );
"Sin[-1/(-1+x)/x]"