# Types

## InvalidBase

</>

Error value when trying to operate with a base out of the allowed range.

``````pub type InvalidBase {
InvalidBase
}``````

### Constructors

• ``InvalidBase``

# Functions

## absolute_value

</>
``pub fn absolute_value(num: Int) -> Int``

Returns the absolute value of the input.

## Examples

``````> absolute_value(-12)
12

> absolute_value(10)
10
``````

## clamp

</>
``pub fn clamp(n: 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
``````

## compare

</>
``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
``````

## digits

</>
``````pub fn digits(number: 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)
``````

## is_even

</>
``pub fn is_even(x: Int) -> Bool``

Returns whether the value provided is even.

## Examples

``````> is_even(2)
True

> is_even(3)
False
``````

## is_odd

</>
``pub fn is_odd(x: Int) -> Bool``

Returns whether the value provided is odd.

## Examples

``````> is_odd(3)
True

> is_odd(2)
False
``````

## max

</>
``pub fn max(a: Int, b: Int) -> Int``

Compares two ints, returning the larger of the two.

## Examples

``````> max(2, 3)
3
``````

## min

</>
``pub fn min(a: Int, b: Int) -> Int``

Compares two ints, returning the smaller of the two.

## Examples

``````> min(2, 3)
2
``````

## negate

</>
``pub fn negate(x: Int) -> Int``

Returns the negative of the value provided.

## Examples

``````> negate(1)
-1
``````

## parse

</>
``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)
``````

## product

</>
``pub fn product(numbers: List(Int)) -> Int``

Multiplies a list of ints and returns the product.

## Example

``````> product([2, 3, 4])
24
``````

## sum

</>
``pub fn sum(numbers: List(Int)) -> Int``

Sums a list of ints.

## Example

``````> sum([1, 2, 3])
6
``````

## to_base16

</>
``pub fn to_base16(int: Int) -> String``

Prints a given int to a string using base16.

## Examples

``````> to_base16(48)
"30"
``````

## to_base2

</>
``pub fn to_base2(int: Int) -> String``

Prints a given int to a string using base2.

## Examples

``````> to_base2(2)
"10"
``````

## to_base36

</>
``pub fn to_base36(int: Int) -> String``

Prints a given int to a string using base16.

## Examples

``````> to_base36(48)
"1C"
``````

## to_base8

</>
``pub fn to_base8(int: Int) -> String``

Prints a given int to a string using base8.

## Examples

``````> to_base8(15)
"17"
``````

## to_base_string

</>
``````pub fn to_base_string(int: 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)
``````

## to_float

</>
``pub fn to_float(int: Int) -> Float``

Takes an int and returns its value as a float.

## Examples

``````> to_float(5)
5.

> to_float(0)
0.

> to_float(-3)
-3.
``````

## to_string

</>
``pub fn to_string(int: Int) -> String``

Prints a given int to a string.

## Examples

``````> to_string(2)
"2"
``````

## undigits

</>
``````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)
``````