RosettaCodeData/Task/Exponentiation-operator/Icon/exponentiation-operator.icon

23 lines
513 B
Plaintext

procedure main()
bases := [5,5.]
numbers := [0,2,2.,-1,3]
every write("expon(",b := !bases,", ",x := !numbers,")=",(expon(b,x) | "failed") \ 1)
end
procedure expon(base,power)
local op,res
base := numeric(base) | runerror(102,base)
power := power = integer(power) | runerr(101,power)
if power = 0 then return 1
else op := if power < 1 then
(base := real(base)) & "/" # force real base
else "*"
res := 1
every 1 to abs(power) do
res := op(res,base)
return res
end