Size: a a a

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

2021 October 13

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
это вот те самые premature optimizations
источник

ST

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

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
я понимаю, что для кого-то натурально алгоритм апкейса строки это прибавление циферок, пока циферка не равна 0, но нет, апкейс строки - это в первую очередь апкейс строки
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
который будет более близок к буквальному условию задачиs
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
вариант с select-keys ты, наверное, и сам мог написать?
источник

E

ETL in Clojure — русскоговорящее сообщество
Мог, конечно. Просто хотелось эстетики, понимал что можно короче, красивее. Я уж не стал в чат писать через @strofimov1972 , но Вы у меня в числе любимых авторов такого рода штук )))
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
эстетика - это когда читабельнее
источник
2021 October 14

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(defn test-abc
 [{:keys [a b c]}]
 (cond a (not (or b c))
       b (not c)
       c true))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
или если упороться
(defn test-abc2
 [m]
 (cond (m :a) (not (or (m :b) (m :c)))
       (m :b) (not (m :c))
       (m :c) true))
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
(defn check-my-map [data]
 (let [result (->> #{:foo :bar :baz}
                   (map data)
                   (map some?)
                   (filter true?))]
   (= result '(true))))
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
находишь значения, прогоняешь их через some? и убеждаешься, что в списке только один истинный элемент
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
ну штош, продолжим утренние упарывания
(-> {:foo 1 :bar nil}
   (group-by #{:foo :bar :baz})
   (dissoc nil)
   count
   (= 1))
источник

ST

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

DL

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
вот еще вариант в лоб
(defn check-my-map [{:keys [a b c]}]
 (cond
   a (and (not b) (not c))
   b (and (not a) (not c))
   c (and (not a) (not b))))
источник

ST

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
уже было, только без повторных сравнений
https://t.me/clojure_ru/163912
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
а, правда вариант Сергея выше луче, т.к. учитывает предыдущие ветки
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
да, это самое оптимальное
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
огонь, а редьюсом?
(reduce (fn [met k]
         (if (get {:a 1 :b 2} k)
           (if met
             (reduced false)
             true)
           met))
       false
       [:a :b :c])
источник