Unfortunately,
: myexp ( u1 u2 -- u3 ) \ u3 = u1^u2 over swap 1 ?do over * loop nip ;
Hangs if the exponent is 0. The correct answer is 1.
: myexp ( u1 u2 -- u3 ) \ u3 = u1^u2 1 swap 0 ?do over * loop nip ;
Will fix that, but it hangs if the exponent is negative.