From 1fd170f5244339e34f1facb24a0893381e94e66a Mon Sep 17 00:00:00 2001 From: Kayla Washburn Date: Sun, 16 Jul 2023 04:44:00 -0600 Subject: `order.reverse` (#476) --- src/gleam/order.gleam | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gleam/order.gleam b/src/gleam/order.gleam index 77ad033..12ce011 100644 --- a/src/gleam/order.gleam +++ b/src/gleam/order.gleam @@ -18,21 +18,21 @@ pub type Order { /// ## Examples /// /// ```gleam -/// > reverse(Lt) +/// > negate(Lt) /// Gt /// ``` /// /// ```gleam -/// > reverse(Eq) +/// > negate(Eq) /// Eq /// ``` /// /// ```gleam -/// > reverse(Lt) +/// > negate(Lt) /// Gt /// ``` /// -pub fn reverse(order: Order) -> Order { +pub fn negate(order: Order) -> Order { case order { Lt -> Gt Eq -> Eq @@ -117,3 +117,17 @@ pub fn min(a: Order, b: Order) -> Order { _, _ -> b } } + +/// Inverts an ordering function, so less-than becomes greater-than and greater-than +/// becomes less-than. +/// +/// ## Examples +/// +/// ```gleam +/// > list.sort([1, 5, 4], by: reverse(int.compare)) +/// [5, 4, 1] +/// ``` +/// +pub fn reverse(orderer: fn(a, a) -> Order) -> fn(a, a) -> Order { + fn(a, b) { orderer(b, a) } +} -- cgit v1.2.3