EXP: procedure
parse arg X, P
if P = "" then P = 9; numeric digits P
Y = X % 1
if ABS(X - Y) > 0.5 then Y = Y + SIGN(X)
X = X - Y
Sum = 1; Term = 1
do J = 1
Term = Term * X / J; NewSum = Sum + Term
if NewSum = Sum then leave
Sum = NewSum
end
if Y = 0 then return Sum
return (
ECONST() ** Y) * Sum