Witchcraft.Ord (Witchcraft v1.0.4) View Source
Ord
describes how to order elements of a data type.
This is a total order, so all elements are either :equal
, :greater
, or :lesser
than each other.
Type Class
An instance of Witchcraft.Ord
must also implement Witchcraft.Setoid
,
and define Witchcraft.Ord.compare/2
.
Setoid [equivalent?/2]
↓
Ord [compare/2]
Link to this section Summary
Functions
Determine if an element is :lesser
or :equal
to another.
Determine if an element is :greater
or :equal
to another.
Get the ordering relationship between two elements.
Determine if two elements are :equal
.
Determine if an element is :greater
than another.
Determine if an element is :lesser
than another.
Link to this section Types
Specs
ordering() :: :lesser | :equal | :greater
Specs
t() :: any()
Link to this section Functions
Specs
Determine if an element is :lesser
or :equal
to another.
Examples
iex> use Witchcraft.Ord
...> 1 <= 2
true
...> [] <= [1, 2, 3]
false
...> [1] <= [1, 2, 3]
true
...> [4] <= [1, 2, 3]
false
Specs
Determine if an element is :greater
or :equal
to another.
Examples
iex> use Witchcraft.Ord
...> 2 >= 1
true
...> [1, 2, 3] >= []
true
...> [1, 2, 3] >= [1]
true
...> [1, 2, 3] >= [4]
false
Specs
Get the ordering relationship between two elements.
Possible results are :lesser
, :equal
, and :greater
Examples
iex> compare(1, 1)
:equal
iex> compare([1], [2])
:lesser
iex> compare([1, 2], [3])
:lesser
iex> compare([3, 2, 1], [1, 2, 3, 4, 5])
:greater
Specs
Determine if two elements are :equal
.
Examples
iex> equal?(1, 1.0)
true
iex> equal?(1, 2)
false
Specs
Determine if an element is :greater
than another.
Examples
iex> greater?(1, 1)
false
iex> greater?(1.1, 1)
true
Specs
Determine if an element is :lesser
than another.
Examples
iex> lesser?(1, 1)
false
iex> lesser?(1, 1.1)
true