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

7 lines
186 B
Factor
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
: 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 ;