Size: a a a

Clojure — русскоговорящее сообщество

2021 September 28

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
только он не как distinct работает )
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ну то есть ты можешь взять исходник distinct и подправить его
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
(defn distinct-by
 ([f]
  (fn [rf]
    (let [seen (volatile! #{})]
      (fn
        ([] (rf))
        ([result] (rf result))
        ([result input]
         (let [p (f input)]
           (if (contains? @seen p)
             result
             (do (vswap! seen conj p)
                 (rf result input)))))))))
 ([f coll] (sequence (distinct-by f) coll)))

например
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
ну это понятно, могу и сам написать, складываю в map и проверять
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
еще можно medley притянуть - http://weavejester.github.io/medley/medley.core.html#var-distinct-by
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
так и сделаю, спс
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
(->> maps
    (group-by :id)
    (mapv (comp first val)))

шото типа такого, ну или можно last вместо first, зависит от условий
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
👍🏻
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
+1
Только, IMHO, vals вместо val
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
нет)
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
А, да.
Или всё-таки заменить, но чуть по-другому:

(->> maps
    (group-by :id)
    vals
    (mapv first))
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
А чего не трансдьюсер?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
да можно и так, прост на один проход меньше
источник
2021 September 29

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Груп бай ид, валс, мап фирст
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
А, выше уже написали. 😂
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Переслано от Alex Bubnov
вы только посмотрите, какие отморозки, я просто восхищен
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Переслано от Alex Bubnov
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
почему отморозки?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
в хорошем смысле - просто взяли и выкинули примерно весь карго-культ современной вебни.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
просто потому что могут
источник