const func integer: intPow (in var integer: base, in var integer: exponent) is func result var integer: result is 0; begin if exponent < 0 then raise(NUMERIC_ERROR); else if odd(exponent) then result := base; else result := 1; end if; exponent := exponent div 2; while exponent <> 0 do base *:= base; if odd(exponent) then result *:= base; end if; exponent := exponent div 2; end while; end if; end func;