Size: a a a

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

2021 October 13

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
два других nil, но при этом используются?
или используется первый попавшийся ((some-fn :a :b :c) m)?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(defn test-map
 [m ks]
 (not (->> ks (keep m) (take 2) (next))))
=> #'user.repl/test-map
(test-map {:a 1 :b 2} [:a :b])
=> false
(test-map {:a 1 :c 3} [:a :b])
=> true
источник

E

ETL in Clojure — русскоговорящее сообщество
жир ) благодарю )
источник

ST

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

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
(-> (select-keys {:a 1 :b 2} [:a :b] )
     keys
     count
     (= 1))
источник

ST

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

ST

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

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
(->> (select-keys {:a 1 :b nil} [:a :b] )
    vals
    (filter some?)
    count
    (= 1))

ну ок
источник

AG

Anatoliy Guliy in Clojure — русскоговорящее сообщество
через juxt короче можно на одну строчку )
источник

ST

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

DL

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

ST

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

E

ETL in Clojure — русскоговорящее сообщество
так, давайте порассуждаем - что хотел сказать автор )
источник

DL

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

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
> Продолжая тему деструктуризации - приходит мне мап с n ключей, мне в нём интересны три ключа

что это, как не select-keys?
источник

ST

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

E

ETL in Clojure — русскоговорящее сообщество
да, моё решение было на {:keys [a b c]}

если в мапе нет ни одного ключа, то оно и не будет проходить эту проверку, поэтому полёт нормальный )
источник

DL

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

DL

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

ST

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