RosettaCodeData/Task/Exponentiation-operator/Factor/exponentiation-operator-2.factor
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

6 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 ;