The gleam/order
module in Gleam's standard library contains the Order
type, which is used to compare values.
The definition of Order
looks like this:
pub type Order {
Gt
Eq
Lt
}
The type has three variants, each used to represent the relationship between value and another value:
Gt
- the value is larger than the other value.Eq
- the value is equal to the other value.Lt
- the value is smaller than the other value.If a data type can be compared by size it is common for the module to define a compare
function which returns an Order
value. For example, gleam/float
and gleam/int
define compare
functions that operate on floats and ints respectively.
int.compare(1, 2)
// -> Lt
int.compare(2, 2)
// -> Eq
float.compare(1.0, 2.0)
// -> Lt
Sorting functions such as list.sort
commonly take a function that returns an Order
value, allowing the caller to define how the list should be sorted.
list.sort([3, 7, 3, 1], by: int.compare)
// -> [1, 3, 3, 7]