gleam/int
Types
Error value when trying to operate with a base out of the allowed range.
pub type InvalidBase {
InvalidBase
}
Constructors
-
InvalidBase
Functions
pub fn absolute_value(x: Int) -> Int
Returns the absolute value of the input.
Examples
> absolute_value(-12)
12
> absolute_value(10)
10
pub fn add(a: Int, b: Int) -> Int
Adds two integers together.
It’s the function equivalent of the +
operator.
This function is useful in higher order functions or pipes.
Examples
> add(1, 2)
3
import gleam/list
> list.fold([1, 2, 3], 0, add)
6
> 3 |> add(2)
5
pub fn base_parse(string: String, base: Int) -> Result(Int, Nil)
Parses a given string as an int in a given base if possible.
Supports only bases 2 to 36, for values outside of which this function returns an Error(Nil)
.
Examples
> base_parse("10", 2)
Ok(2)
> base_parse("30", 16)
Ok(48)
> base_parse("1C", 36)
Ok(48)
> base_parse("48", 1)
Error(Nil)
> base_parse("48", 37)
Error(Nil)
pub fn clamp(x: Int, min min_bound: Int, max max_bound: Int) -> Int
Restricts an int between a lower and upper bound.
Examples
> clamp(40, min: 50, max: 60)
50
pub fn compare(a: Int, with b: Int) -> Order
Compares two ints, returning an order.
Examples
> compare(2, 3)
Lt
> compare(4, 3)
Gt
> compare(3, 3)
Eq
pub fn digits(x: Int, base: Int) -> Result(List(Int), InvalidBase)
Splits an integer into its digit representation in the specified base
Examples
> digits(234, 10)
Ok([2,3,4])
> digits(234, 1)
Error(InvalidBase)
pub fn divide(dividend: Int, by divisor: Int) -> Result(Int, Nil)
Performs a truncated integer division.
Returns division of the inputs as a Result
: If the given divisor equals
0
, this function returns an Error
.
Examples
> divide(0, 1)
Ok(1)
> divide(1, 0)
Error(Nil)
> divide(5, 2)
Ok(2)
> divide(-99, 2)
Ok(-49)
pub fn floor_divide(dividend: Int, by divisor: Int) -> Result(
Int,
Nil,
)
Performs a floored integer division, which means that the result will always be rounded towards negative infinity.
If you want to perform truncated integer division (rounding towards zero),
use int.divide()
or the /
operator instead.
Returns division of the inputs as a Result
: If the given divisor equals
0
, this function returns an Error
.
Examples
> floor_divide(1, 0)
Error(Nil)
> floor_divide(5, 2)
Ok(2)
> floor_divide(6, -4)
Ok(-2)
> floor_divide(-99, 2)
Ok(-50)
pub fn is_even(x: Int) -> Bool
Returns whether the value provided is even.
Examples
> is_even(2)
True
> is_even(3)
False
pub fn is_odd(x: Int) -> Bool
Returns whether the value provided is odd.
Examples
> is_odd(3)
True
> is_odd(2)
False
pub fn max(a: Int, b: Int) -> Int
Compares two ints, returning the larger of the two.
Examples
> max(2, 3)
3
pub fn min(a: Int, b: Int) -> Int
Compares two ints, returning the smaller of the two.
Examples
> min(2, 3)
2
pub fn modulo(dividend: Int, by divisor: Int) -> Result(Int, Nil)
Computes the modulo of an integer division of inputs as a Result
.
Returns division of the inputs as a Result
: If the given divisor equals
0
, this function returns an Error
.
Most the time you will want to use the %
operator instead of this
function.
Examples
> modulo(3, 2)
Ok(1)
> modulo(1, 0)
Error(Nil)
> modulo(10, -1)
Ok(0)
> modulo(13, by: 3)
Ok(1)
> modulo(-13, by: 3)
Ok(2)
> modulo(13, by: -3)
Ok(-2)
> modulo(-13, by: -3)
Ok(-1)
pub fn multiply(a: Int, b: Int) -> Int
Multiplies two integers together.
It’s the function equivalent of the *
operator.
This function is useful in higher order functions or pipes.
Examples
> multiply(2, 4)
8
import gleam/list
> list.fold([2, 3, 4], 1, multiply)
24
> 3 |> multiply(2)
6
pub fn negate(x: Int) -> Int
Returns the negative of the value provided.
Examples
> negate(1)
-1
pub fn parse(string: String) -> Result(Int, Nil)
Parses a given string as an int if possible.
Examples
> parse("2")
Ok(2)
> parse("ABC")
Error(Nil)
pub fn power(base: Int, of exponent: Float) -> Result(Float, Nil)
Returns the results of the base being raised to the power of the
exponent, as a Float
.
Examples
> power(2, -1.0)
Ok(0.5)
> power(2, 2.0)
Ok(4.0)
> power(8, 1.5)
Ok(22.627416997969522)
> 4 |> power(of: 2.0)
Ok(16.0)
> power(-1, 0.5)
Error(Nil)
pub fn product(numbers: List(Int)) -> Int
Multiplies a list of ints and returns the product.
Example
> product([2, 3, 4])
24
pub fn random(boundary_a: Int, boundary_b: Int) -> Int
Returns 0
if boundary_a
and boundary_b
are equal,
otherwise returns an Int x
where lower_boundary =< x < upper_boundary
.
Examples
> random(1, 5)
2
pub fn remainder(dividend: Int, by divisor: Int) -> Result(
Int,
Nil,
)
Computes the remainder of an integer division of inputs as a Result
.
Returns division of the inputs as a Result
: If the given divisor equals
0
, this function returns an Error
.
Most the time you will want to use the %
operator instead of this
function.
Examples
> remainder(3, 2)
Ok(1)
> remainder(1, 0)
Error(Nil)
> remainder(10, -1)
Ok(0)
> remainder(13, by: 3)
Ok(1)
> remainder(-13, by: 3)
Ok(-1)
> remainder(13, by: -3)
Ok(1)
> remainder(-13, by: -3)
Ok(-1)
pub fn square_root(x: Int) -> Result(Float, Nil)
Returns the square root of the input as a Float
.
Examples
> square_root(4)
Ok(2.0)
> square_root(-16)
Error(Nil)
pub fn subtract(a: Int, b: Int) -> Int
Subtracts one int from another.
It’s the function equivalent of the -
operator.
This function is useful in higher order functions or pipes.
Examples
> subtract(3, 1)
2.0
import gleam/list
> list.fold([1, 2, 3], 10, subtract)
4
> 3 |> subtract(2)
1
> 3 |> subtract(2, _)
-1
pub fn to_base16(x: Int) -> String
Prints a given int to a string using base-16.
Examples
> to_base16(48)
"30"
pub fn to_base2(x: Int) -> String
Prints a given int to a string using base-2.
Examples
> to_base2(2)
"10"
pub fn to_base36(x: Int) -> String
Prints a given int to a string using base-36.
Examples
> to_base36(48)
"1C"
pub fn to_base8(x: Int) -> String
Prints a given int to a string using base-8.
Examples
> to_base8(15)
"17"
pub fn to_base_string(x: Int, base: Int) -> Result(
String,
InvalidBase,
)
Prints a given int to a string using the base number provided.
Supports only bases 2 to 36, for values outside of which this function returns an Error(InvalidBase)
.
For common bases (2, 8, 16, 36), use the to_baseN
functions.
Examples
> to_base_string(2, 2)
Ok("10")
> to_base_string(48, 16)
Ok("30")
> to_base_string(48, 36)
Ok("1C")
> to_base_string(48, 1)
Error(InvalidBase)
> to_base_string(48, 37)
Error(InvalidBase)
pub fn to_float(x: Int) -> Float
Takes an int and returns its value as a float.
Examples
> to_float(5)
5.0
> to_float(0)
0.0
> to_float(-3)
-3.0
pub fn to_string(x: Int) -> String
Prints a given int to a string.
Examples
> to_string(2)
"2"
pub fn undigits(numbers: List(Int), base: Int) -> Result(
Int,
InvalidBase,
)
Joins a list of digits into a single value. Returns an error if the base is less than 2 or if the list contains a digit greater than or equal to the specified base.
Examples
> undigits([2,3,4], 10)
Ok(234)
> undigits([2,3,4], 1)
Error(InvalidBase)
> undigits([2,3,4], 2)
Error(InvalidBase)