Page
Library
Module
Module type
Parameter
Class
Class type
Source
Standard.Int
Fixed precision integers
Attempt to parse a string
into a int
.
Examples
Int.ofString "42" = Some 42.
Int.ofString "-3" = Some (-3)
Int.ofString "123_456" = Some 123_456
Int.ofString "0xFF" = Some 255
Int.ofString "Infinity" = None
Int.ofString "NaN" = None
Note You do not need to open the Int
module to use the (+)
, (-)
, (*)
, (**)
, (mod)
or (/)
operators, these are available as soon as you open Standard
See Int.add
Subtract numbers
Examples
Int.subtract 4 3 = 1
Alternatively the operator can be used:
4 - 3 = 1
See Int.subtract
Multiply int
s
Examples
Int.multiply 2 7 = 14
Alternatively the operator can be used:
(2 * 7) = 14
See Int.multiply
Integer division
Notice that the remainder is discarded.
Exceptions
Throws Division_by_zero
when by
is 0
.
Examples
Int.divide 3 ~by:2 = 1
27 / 5 = 5
See Int.divide
Floating point division
Examples
Int.(3 /. 2) = 1.5
Int.(27 /. 5) = 5.25
Int.(8 /. 4) = 2.0
Exponentiation, takes the base first, then the exponent.
Examples
Int.power ~base:7 ~exponent:3 = 343
Alternatively the **
operator can be used:
7 ** 3 = 343
See Int.power
Flips the 'sign' of an int so that positive ints become negative and negative ints become positive. Zero stays as it is.
Examples
Int.negate 8 = (-8)
Int.negate (-7) = 7
Int.negate 0 = 0
Alternatively the ~-
operator can be used:
~-(7) = (-7)
See Int.negate
Get the absolute value of a number.
Examples
Int.absolute 8 = 8
Int.absolute (-7) = 7
Int.absolute 0 = 0
Perform modular arithmetic.
If you intend to use modulo
to detect even and odd numbers consider using Int.isEven
or Int.isOdd
.
The modulo
function works in the typical mathematical way when you run into negative numbers
Use Int.remainder
for a different treatment of negative numbers.
Exceptions
Throws Division_by_zero
when by
is 0
.
Examples
Int.modulo ~by:3 (-4) = 1
Int.modulo ~by:3 (-3) = 0
Int.modulo ~by:3 (-2) = 1
Int.modulo ~by:3 (-1) = 2
Int.modulo ~by:3 0 = 0
Int.modulo ~by:3 1 = 2
Int.modulo ~by:3 2 = 1
Int.modulo ~by:3 3 = 0
Int.modulo ~by:3 4 = 1
See Int.modulo
Get the remainder after division. Here are bunch of examples of dividing by four:
Use Int.modulo
for a different treatment of negative numbers.
Exceptions
Throws Division_by_zero
when by
is 0
.
Examples
Int.remainder ~by:3 (-4) = 1
Int.remainder ~by:3 (-3) = 0
Int.remainder ~by:3 (-2) = 2
Int.remainder ~by:3 (-1) = 1
Int.remainder ~by:3 0 = 0
Int.remainder ~by:3 1 = 1
Int.remainder ~by:3 2 = 2
Int.remainder ~by:3 3 = 0
Int.remainder ~by:3 4 = 1
Returns the larger of two int
s
Examples
Int.maximum 7 9 = 9
Int.maximum (-4) (-1) = (-1)
Returns the smaller of two int
s
Examples
Int.minimum 7 9 = 7
Int.minimum (-4) (-1) = (-4)
Check if an int
is even
Examples
Int.isEven 8 = true
Int.isEven 7 = false
Int.isEven 0 = true
Check if an int
is odd
Examples
Int.isOdd 7 = true
Int.isOdd 8 = false
Int.isOdd 0 = false
Clamps n
within the inclusive lower
and upper
bounds.
Exceptions
Throws an Invalid_argument
exception if lower > upper
Examples
Int.clamp ~lower:0 ~upper:8 5 = 5
Int.clamp ~lower:0 ~upper:8 9 = 8
Int.clamp ~lower:(-10) ~upper:(-5) 5 = (-5)
Checks if n
is between lower
and up to, but not including, upper
.
Exceptions
Throws an Invalid_argument
exception if lower > upper
Examples
Int.inRange ~lower:2 ~upper:4 3 = true
Int.inRange ~lower:5 ~upper:8 4 = false
Int.inRange ~lower:(-6) ~upper:(-2) (-3) = true
Convert an int
into a string
representation.
Guarantees that
Int.(ofString (toString n)) = Some n
Examples
Int.toString 3 = "3"
Int.toString (-3) = "-3"
Int.to_sString 0 = "0"
The unique identity for ints
Comparator