Size: a a a

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

2019 December 24

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
окей, можно написать хэшмапалку, чтобы не ела нуллы, например через редьюс
а можно «cond-> + assoc» 😊
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Sergey Trofimov
а можно «cond-> + assoc» 😊
можно, это уже детали реализации hash-map-dont-eat-nils
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Sergey Trofimov
а можно «cond-> + assoc» 😊
Что это?
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
риал кейс - в нашем боевом проекте все эти конды+ассоки заменили на удобное [medley.core :refer [assoc-some]]
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Tim Plotnikov
Что это?
(cond-> {:a 1 :b 2}
 c (assoc :c c))
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
если c - nil - просто не будет добавлять
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
(cond-> {:a 1}
                     nil (assoc :b 2)
                     3 (assoc :c 3)
                     )

> {:a 1, :c 3}
источник

DL

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

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Пока остановился на
(defn remove-nils [m]
 (into {} (remove #(nil? (val %)) m)))

Хотя вот смотрю assoc-some это что-то по-лучше
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
```
(defn remove-nil-values [m]
 (->> m
      (remove (fn [[_ v]] (nil? v)))
      (into {})))```
(->> m
     (filter val)
     (into {}))
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Вот идеоматично
источник

A

Alex in Clojure — русскоговорящее сообщество
пример для assoc-when, тоже читаемо волне имхо
(defn f
 [a b & [c d]]
 (plumbing.core/assoc-when {:a a :b b} :c c :d d))
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
second и [[_ v]] не так круто
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrey Ivanov
риал кейс - в нашем боевом проекте все эти конды+ассоки заменили на удобное [medley.core :refer [assoc-some]]
ну и где тут та самая «наглядность»
а так понятно, что можно и свой assoc написать
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
в коте, вестимо
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
(->> m
     (filter val)
     (into {}))
быстро пофиксил :)
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
(->> m
     (filter val)
     (into {}))
но да, так лучше
источник

ST

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

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
быстро пофиксил :)
Копипаст не заметил сначала)
источник