Size: a a a

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

2021 February 12

IL

Igor Levdansky in Clojure — русскоговорящее сообщество
Тоже самое, что
[(multi-path [MAP-VALS MAP-VALS nil?]
            [MAP-VALS nil?])]
только упрощенное
источник

ДН

Денис Нибаев... in Clojure — русскоговорящее сообщество
Igor Levdansky
[MAP-VALS (multi-path [MAP-VALS] []) nil?]
благодарю! пробовал через if-path, но не разобрался в условии
источник

ДН

Денис Нибаев... in Clojure — русскоговорящее сообщество
Sergey Trofimov
плюс контракт, что поля не отсутствуют и т.д. 😊
берётся исходная мапа, соответствующая дефолтному контракту и в неё мержатся актуальные данные
да, это вариант. в этой плоскости не думал. надо все-таки смотреть на задачу с разных сторон. спасибо
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Денис Нибаев
всем привет. какие есть варианты получше?
(reduce-kv (fn [acc k v]
              (assoc acc k
                     (reduce-kv (fn [acc k v]
                                  (assoc acc k (if (nil? v) ""  v))) {} v)))
            {}
            {:person
             {:firstName nil
              :lastName nil
              :middleName nil}
             :practitioner
             {:firstName "1", :lastName nil, :middleName nil, :id "pr2", :role ""}})
 ;; => {:person {:firstName "", :lastName "", :middleName ""}, :practitioner {:firstName "1", :lastName "", :middleName "", :id "pr2", :role ""}}
можно заменить
(assoc acc k (if (nil? v) "" v))
на
(update acc k (fnil identity ""))
Если хочется удлинить код на 1 символ.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Damir Farazetdinov
можно заменить
(assoc acc k (if (nil? v) "" v))
на
(update acc k (fnil identity ""))
Если хочется удлинить код на 1 символ.
(or v "")
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а если там false
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
а если там false
"не должно".жпг
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Sergey Trofimov
а если там false
Там же строки предполагаются по дизайну
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Но все равно конечно так делать не надо
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Но так ты только уменьшишь количество символов в коде. А мой вариант даёт увеличение на 1!
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Но есть более извращенский вариант, с заменой вложенного reduce-kv на reduce:
Было
(reduce-kv (fn [acc k v] (assoc acc k (if (nil? v) ""  v))) {} v)
Стало
(reduce (fn [acc [k]] (update acc k (fnil identity ""))) v v)
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
(+ 1 6)
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
всем доброго времени суток
источник

ДН

Денис Нибаев... in Clojure — русскоговорящее сообщество
мне вариант со спектром зашел. всем спасибо за отклик)
источник

ДН

Денис Нибаев... in Clojure — русскоговорящее сообщество
на видео презентации чувак реально проникся болью модификации коллекции. я прочувстовал
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
почему меня выкидывает из гшруппы
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
не успеваю сообщение большое дописать
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
может дело в том что в сообщении ссылки есть?
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
16
источник

СС

Сергей Суржик... in Clojure — русскоговорящее сообщество
источник