Packages
gleam_stdlib
0.12.0
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam/int.gleam
import gleam/order.{Order}
pub type Int =
Int
/// Parse a given string as an int if possible.
///
/// ## Examples
///
/// > parse("2")
/// Ok(2)
///
/// > parse("ABC")
/// Error(Nil)
///
pub external fn parse(String) -> Result(Int, Nil) =
"gleam_stdlib" "parse_int"
/// Print a given int to a string.
///
/// ## Examples
///
/// > to_string(2)
/// "2"
///
pub external fn to_string(Int) -> String =
"erlang" "integer_to_binary"
/// Print a given int to a string using the base number provided.
///
/// ## Examples
///
/// > to_base_string(2, 2)
/// "10"
///
/// > to_base_string(48, 16)
/// "30"
///
/// > to_base_string(48, 36)
/// "1C"
///
pub external fn to_base_string(Int, Int) -> String =
"erlang" "integer_to_binary"
/// Takes an int and returns its value as a float
///
/// ## Examples
///
/// > to_float(5)
/// 5.
///
/// > to_float(0)
/// 0.
///
/// > to_float(-3)
/// -3.
///
pub external fn to_float(a: Int) -> Float =
"erlang" "float"
/// Compares two ints, returning an order.
///
/// ## Examples
///
/// > compare(2, 3)
/// Lt
///
/// > compare(4, 3)
/// Gt
///
/// > compare(3, 3)
/// Eq
///
pub fn compare(a: Int, with b: Int) -> Order {
case a == b {
True -> order.Eq
False ->
case a < b {
True -> order.Lt
False -> order.Gt
}
}
}
/// Compares two int, returning the smaller of the two.
///
/// ## Examples
///
/// > min(2, 3)
/// 2
///
pub fn min(a: Int, b: Int) -> Int {
case a < b {
True -> a
False -> b
}
}
/// Compares two int, returning the larger of the two.
///
/// ## Examples
///
/// > max(2, 3)
/// 3
///
pub fn max(a: Int, b: Int) -> Int {
case a > b {
True -> a
False -> b
}
}
/// Returns whether the value provided is even.
///
/// ## Examples
///
/// > is_even(2)
/// True
///
/// > is_even(3)
/// False
///
pub fn is_even(x: Int) -> Bool {
x % 2 == 0
}
/// Returns whether the value provided is odd.
///
/// ## Examples
///
/// > is_odd(3)
/// True
///
/// > is_odd(2)
/// False
///
pub fn is_odd(x: Int) -> Bool {
x % 2 != 0
}
/// Returns the negative of the value provided
///
/// ## Examples
///
/// > negate(1)
/// -1
///
pub fn negate(x: Int) -> Int {
-1 * x
}