4.2 Integers

The module Int contains procedures operating on integers.

IsInt

{Int.is +X ?B}

tests whether X is an integer.

IsNat

{Int.isNat +I ?B}

tests whether I is a natural number, i. e., an integer greater than or equal to 0.

IsOdd

{Int.isOdd +I ?B}

tests whether I is an odd integer.

IsEven

{Int.isEven +I ?B}

tests whether I is an even integer.

div

{Int.'div' +I1 +I2 ?I3}

returns I1 integer-divided by I2, rounding towards 0. Int.'div' can be defined as follows:

local 
   fun {Div I1 I2}
      case I1 < I2 then 0 else 1 + {Div I1 - I2 I2} end 
   end 
in 
   fun {Int.'div' I1 I2}
      {Div {Abs I1} {Abs I2}} * 
      case I1 * I2 >= 0 then 1 else ~end 
   end 
end

mod

{Int.'mod' +I1 +I2 ?I3}

returns I1 modulo I2. Int.'mod' can be defined as follows:

fun {Int.'mod' I1 I2}
   I1 - I2 * (I1 div I2)
end

IntToFloat

{Int.toFloat +I ?F}

returns the float closest to the integer I.

IntToString

{Int.toString +I ?S}

returns the string describing the integer I in Oz concrete syntax.


Denys Duchier, Leif Kornstaedt and Christian Schulte
Version 1.4.0 (20080702)