1.13 pattern example 8
Write pattern to change f(a^b) to p(a^b,b)
In Maple
restart;
expr:=f(a^b);
if patmatch(expr,f( (a::anything)^b::anything ),'la') then
print(la);
p( eval(a,la)^eval(b,la) , eval(b,la) );
else
expr;
fi;
p(a^b, b)
In Mathematica
f[a^b] /. f[x : _^n_] -> p[x, n]
p[a^b,b]