Having trouble writing a power function inStandard Ml. Im trying to write a function called exp of type int -> int -> int. 
The application exp b e, for non-negative e, should return b^e. 
For example, exp 3 2 should return 9. exp must be implemented with the function compound provided below. exp should not directly calls itself. Here is the compound function, it takes in a value n, a function, and a value x. All it does is it applies the function to the value x n number of times.
fun compound 0 f x = x 
  | compound n f x = compound (n-1) f (f x);
Im having trouble figuring out how to write this function without recursion, and with the restraint of having to use a function that only can use a function with one parameter. Anyone have any ideas of where to start with this?
This is what I have:
fun exp b 0 = 1  
  | exp b e = (compound e (fn x => x*x) b)  
I know that this doesn't work, since if i put in 2^5 it will do: 2*2, 4*4, 16*16 etc.