This document goes into fairly deep dive on other ways to do it, including
a gotcha on edge cases of using something like (comp - compare) that will
rarely if ever bite you, but some people may want to know about them to
avoid them.

https://clojure.org/guides/comparators

Andy

On Wed, Oct 14, 2020 at 7:58 AM Matthew O. Smith <m0sm...@gmail.com> wrote:

> Google brought this up in 2020
>
> Try
> (comp - compare)
>
>
>
> On Tuesday, December 23, 2014 at 10:04:35 AM UTC-7
> julian...@googlemail.com wrote:
>
>> That's awesome! (though I'm slightly surprised there isn't an easier
>> way).
>>
>> Thanks.
>>
>>
>> On Tuesday, 23 November 2010 21:03:37 UTC, Tyler Perkins wrote:
>>>
>>> Nice! And with just a bit more, we have a clean, sorting DSL:
>>>
>>> (def asc compare)
>>> (def desc #(compare %2 %1))
>>> ;;  compare-by generates a Comparator:
>>> (defn compare-by [& key-cmp-pairs]
>>>   (fn [x y]
>>>       (loop [[k cmp & more] key-cmp-pairs]
>>>          (let [result (cmp (k x) (k y))]
>>>               (if (and (zero? result) more)
>>>                   (recur more)
>>>                   result)))))
>>>
>>> (sort (compare-by :last-name asc, :date-of-birth desc) coll)
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/769d3b44-e1dc-43f4-8728-7ecfdce86e79n%40googlegroups.com
> <https://groups.google.com/d/msgid/clojure/769d3b44-e1dc-43f4-8728-7ecfdce86e79n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAKvLtDZEuD3%3DAzGW0HHC5-NGwbSba0hyUnLTn4vOPkWvWuGrgQ%40mail.gmail.com.

Reply via email to