Fork me on GitHub
#clojure-russia
<
2018-04-23
>
achikin13:04:11

shadow-cljs это обертка НАД cljsbuild

achikin13:04:01

Что-то на меня напал тупняк

achikin13:04:11

Смотрю доку к sort-by

achikin13:04:18

Returns a sorted sequence of the items in coll, where the sort
order is determined by comparing (keyfn item).  If no comparator is
supplied, uses compare.  comparator must implement
java.util.Comparator.  Guaranteed to be stable: equal elements will
not be reordered.  If coll is a Java array, it will be modified.  To
avoid this, sort a copy of the array.

achikin13:04:31

Не могу понять как задать sort order.

achikin13:04:56

the sort order is determined by comparing (keyfn item)

achikin13:04:06

Это как?

achikin13:04:35

Или это не sort order в смысле "от большего к меньшему или наоборот"?

delaguardo13:04:41

это и есть по умолчанию “от меньшему к большему” только по значениям которые выдает (keyfn item)

delaguardo13:04:53

обратную сортировку можно задать передаваю кастомную функцию comp

delaguardo13:04:51

которая реализует такой же интерфейс что и https://clojuredocs.org/clojure.core/compare

delaguardo13:04:01

например (sort-by #(get-in % [:foo :bar]) [{:foo {:bar 3}} {:foo {:bar 1}} {:foo {:bar 2}}]) вернет [{:foo {:bar 1}} {:foo {:bar 2}} {:foo {:bar 3}}]

delaguardo13:04:21

но с другим компаратором (например с >) получится вот так (sort-by #(get-in % [:foo :bar]) > [{:foo {:bar 3}} {:foo {:bar 1}} {:foo {:bar 2}}]) вернет [{:foo {:bar 3}} {:foo {:bar 2}} {:foo {:bar 1}}]

achikin13:04:21

Ага, спасибо.

achikin13:04:46

> опасненько использовать. Он на строках не работает.

achikin13:04:14

Тут скорее пойдет #(neg (compare %1 %2))

delaguardo13:04:09

да это я в качестве примера) понятное дело что компаратор нужно более детально реализовывать)