Size: a a a

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

2020 April 10

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
тогда эта, макросы тут нафиг не нужны
ну не хочет человек одну и ту же конструкцию сто раз писать по коду, чего ты пристал 😊
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну не хочет человек одну и ту же конструкцию сто раз писать по коду, чего ты пристал 😊
так я тоже не люблю
источник

E

ETL in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну не хочет человек одну и ту же конструкцию сто раз писать по коду, чего ты пристал 😊
Это мне предъява от наставника пришла, что принцип DRY мой код нарушает, а я как раз у Эмерика про макросы прочёл и думаю - дай запилю макрос.
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну не хочет человек одну и ту же конструкцию сто раз писать по коду, чего ты пристал 😊

(defn db []
 (-> (mg/connect)
     (mg/get-db "monger-test")))

(defn find-maps-local []
 (let [coll "documents"]
   (partial mc/find-maps (db) coll)))

(defn set-counter-2 []
 (if-let [ids (seq (map :_id (find-maps-local)))]
   (apply max ids)
   0))



разве не? (fixed)
источник

DL

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

DL

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

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)

(defn db []
 (-> (mg/connect)
     (mg/get-db "monger-test")))

(defn find-maps-local []
 (let [coll "documents"]
   (partial mc/find-maps (db) coll)))

(defn set-counter-2 []
 (if-let [ids (seq (map :_id (find-maps-local)))]
   (apply max ids)
   0))



разве не? (fixed)
(def db
 (-> (mg/connect)
     (mg/get-db "monger-test")))

такое вряд ли будет работать до запуска приложения
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Sergey Trofimov
(def db
 (-> (mg/connect)
     (mg/get-db "monger-test")))

такое вряд ли будет работать до запуска приложения
fixed
источник

DL

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

(defn db []
 (-> (mg/connect)
     (mg/get-db "monger-test")))

(defn find-maps-local []
 (let [coll "documents"]
   (partial mc/find-maps (db) coll)))

(defn set-counter-2 []
 (if-let [ids (seq (map :_id (find-maps-local)))]
   (apply max ids)
   0))



разве не? (fixed)
ну и вообще

(defn set-counter-2 []
 (if-let [ids (seq (map #(get % :_id)  (find-maps-local)))]
   (apply max ids)
   0))
источник

ST

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

(defn set-counter-2 []
 (if-let [ids (seq (map #(get % :_id)  (find-maps-local)))]
   (apply max ids)
   0))
```
(defn set-counter-2 []
 (if-let [ids (seq (map :_id (find-maps-local)))]
   (apply max ids)
   0))
```
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Sergey Trofimov
```
(defn set-counter-2 []
 (if-let [ids (seq (map :_id (find-maps-local)))]
   (apply max ids)
   0))
```
+++
источник

E

ETL in Clojure — русскоговорящее сообщество
Мощно.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
(defn set-counter-2 []
 (or (some->> (find-maps-local)
              (map :_id)
              (seq)
              (apply max))
     0))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
(defn set-counter-2 []
 (or (some->> (find-maps-local)
              (map :_id)
              (seq)
              (apply max))
     0))
(defn set-counter-2 []
 (or (some->> (seq (find-maps-local))
              (map :_id)
              (apply max))
     0))
источник

E

ETL in Clojure — русскоговорящее сообщество
Sergey Trofimov
(defn set-counter-2 []
 (or (some->> (find-maps-local)
              (map :_id)
              (seq)
              (apply max))
     0))
Вот тут немного не догнал.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ETL
Вот тут немного не догнал.
чего именно?
источник

E

ETL in Clojure — русскоговорящее сообщество
->> -  thread last, т.е. полученных от применения предыдущей функции результат ставим последним аргументом для следующей
some - 1) по доке требует предикат и коллекцию, предиката у нас нет 2) в какой момент вычисляется some?
источник

DL

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

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
это как ->>, но коротко замыкается на nil
источник

E

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