Quick StartTryGuideAPICommunityBlogGitHub

Standard Library

Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!

If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.

Module Num

module Num: sig .. end
Operation on arbitrary-precision numbers.

Numbers (type num) are arbitrary-precision rational numbers, plus the special elements 1/0 (infinity) and 0/0 (undefined).


type num = 
| Int of int
| Big_int of Big_int.big_int
| Ratio of Ratio.ratio
The type of numbers.

Arithmetic operations

val (+/) : num -> num -> num
Same as Num.add_num.
val add_num : num -> num -> num
Addition
val minus_num : num -> num
Unary negation.
val (-/) : num -> num -> num
Same as Num.sub_num.
val sub_num : num -> num -> num
Subtraction
val ( */ ) : num -> num -> num
Same as Num.mult_num.
val mult_num : num -> num -> num
Multiplication
val square_num : num -> num
Squaring
val (//) : num -> num -> num
Same as Num.div_num.
val div_num : num -> num -> num
Division
val quo_num : num -> num -> num
Euclidean division: quotient.
val mod_num : num -> num -> num
Euclidean division: remainder.
val ( **/ ) : num -> num -> num
Same as Num.power_num.
val power_num : num -> num -> num
Exponentiation
val abs_num : num -> num
Absolute value.
val succ_num : num -> num
succ n is n+1
val pred_num : num -> num
pred n is n-1
val incr_num : num Pervasives.ref -> unit
incr r is r:=!r+1, where r is a reference to a number.
val decr_num : num Pervasives.ref -> unit
decr r is r:=!r-1, where r is a reference to a number.
val is_integer_num : num -> bool
Test if a number is an integer

The four following functions approximate a number by an integer :
val integer_num : num -> num
integer_num n returns the integer closest to n. In case of ties, rounds towards zero.
val floor_num : num -> num
floor_num n returns the largest integer smaller or equal to n.
val round_num : num -> num
round_num n returns the integer closest to n. In case of ties, rounds off zero.
val ceiling_num : num -> num
ceiling_num n returns the smallest integer bigger or equal to n.
val sign_num : num -> int
Return -1, 0 or 1 according to the sign of the argument.

Comparisons between numbers

val (=/) : num -> num -> bool
val (</) : num -> num -> bool
val (>/) : num -> num -> bool
val (<=/) : num -> num -> bool
val (>=/) : num -> num -> bool
val (<>/) : num -> num -> bool
val eq_num : num -> num -> bool
val lt_num : num -> num -> bool
val le_num : num -> num -> bool
val gt_num : num -> num -> bool
val ge_num : num -> num -> bool
val compare_num : num -> num -> int
Return -1, 0 or 1 if the first argument is less than, equal to, or greater than the second argument.
val max_num : num -> num -> num
Return the greater of the two arguments.
val min_num : num -> num -> num
Return the smaller of the two arguments.

Coercions with strings

val string_of_num : num -> string
Convert a number to a string, using fractional notation.
val approx_num_fix : int -> num -> string
val approx_num_exp : int -> num -> string
Approximate a number by a decimal. The first argument is the required precision. The second argument is the number to approximate. Num.approx_num_fix uses decimal notation; the first argument is the number of digits after the decimal point. approx_num_exp uses scientific (exponential) notation; the first argument is the number of digits in the mantissa.
val num_of_string : string -> num
Convert a string to a number. Raise Failure "num_of_string" if the given string is not a valid representation of an integer

Coercions between numerical types

val int_of_num : num -> int
val num_of_int : int -> num
val nat_of_num : num -> Nat.nat
val num_of_nat : Nat.nat -> num
val num_of_big_int : Big_int.big_int -> num
val big_int_of_num : num -> Big_int.big_int
val ratio_of_num : num -> Ratio.ratio
val num_of_ratio : Ratio.ratio -> num
val float_of_num : num -> float