1.11 pattern example 6

Given [1, x, x^2, x^3] write pattern to change all x^n::anything to r(n)

In Maple

L:=[1, x, x^2, x^3]; 
map( proc(X) local la,n; 
     if patmatch(X,x^n::'nonunit'(anything),'la') then 
        r(eval(n,la)); 
     else 
        X; 
     fi; 
     end proc, L); 
 
 
         [1, x, r(2), r(3)]
 

In Mathematica

{1, x, x^2, x^3} /. x^n_ -> r[n] 
 
   {1, x, r[2], r[3]}