acca/ordering
Functions
Left biased resolution of comparing two orderings.
aordering.compare(Less, Greater) == Less
aordering.compare(Equal, Less) == Less
aordering.compare(Equal, Equal) == Equal
aordering.compare(Equal, Greather) == Greather
aordering.compare(Greather, Less) == Greather
Left biased resolution of comparing two orderings.
aordering.compare(Less, Greater) == Less
aordering.compare(Equal, Less) == Less
aordering.compare(Equal, Equal) == Equal
aordering.compare(Equal, Greather) == Greather
aordering.compare(Greather, Less) == Greather
Reduces a List
aordering.reduce([]) == None
aordering.reduce([Less, Greater, Less]) == Some(Less)
aordering.reduce([Equal, Less, Greater]) == Some(Less)
aordering.reduce([Equal, Equal, Equal]) == Some(Equal)
aordering.reduce([Equal, Equal, Equal, Greater]) == Some(Greater)
Reduces a ListEqual for an empty list.
aordering.force_reduce([]) == Equal
aordering.force_reduce([Less, Greater, Less]) == Less
aordering.force_reduce([Equal, Less, Greater]) == Less
aordering.force_reduce([Equal, Equal, Equal]) == Equal
aordering.force_reduce([Equal, Equal, Equal, Greater]) == Greater
compare_tuple(
left: (a, b),
right: (a, b),
first_compare: fn(a, a) -> Ordering,
second_compare: fn(b, b) -> Ordering,
) -> Ordering
Compares two tuples with a given compare functions for both left and right side of the tuple.
aordering.compare_tuple((1, 2), (1, 2)) == Equal
aordering.compare_tuple((0, 1), (1, 2)) == Less
aordering.compare_tuple((2, 1), (1, 2)) == Greater
aordering.compare_tuple((1, @"a"), (1, @"a")) == Equal
aordering.compare_tuple((1, @"a"), (1, @"b")) == Less
Compares two tuples with a given compare functions for both left and right side of the tuple. This function will only look at left side of the tuple.
aordering.compare_tuple_left((1, 2), (1, 2)) == Equal
aordering.compare_tuple_left((0, 1), (1, 2)) == Less
aordering.compare_tuple_left((2, 1), (1, 2)) == Greater
aordering.compare_tuple_left((1, @"a"), (1, @"b")) == Equal
compare_pair_left(
pair1: Pair<a, b>,
pair2: Pair<a, b>,
left_compare: fn(a, a) -> Ordering,
) -> Ordering
Compares two pairs with a given compare function for the left side of the pair. This function will only look at left side of the pair.
aordering.compare_pair_left(Pair(1, 2), Pair(1, 2), int.compare) == Equal
aordering.compare_pair_left(Pair(0, 1), Pair(1, 2), int.compare) == Less
aordering.compare_pair_left(Pair(2, 1), Pair(1, 2), int.compare) == Greater
aordering.compare_pair_left(Pair(1, @"a"), Pair(1, @"b"), int.compare) == Equal