RosettaCodeData/Task/Exponentiation-operator/Factor/exponentiation-operator-2.f...

7 lines
186 B
Factor

: pow ( f n -- f' )
{
{ [ dup 0 < ] [ abs pow recip ] }
{ [ dup 0 = ] [ 2drop 1 ] }
[ [ 2 mod 1 = swap 1 ? ] [ [ sq ] [ 2 /i ] bi* pow ] 2bi * ]
} cond ;