This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-15
Channels
- # beginners (34)
- # boot (45)
- # cider (16)
- # cljs-dev (20)
- # cljsjs (1)
- # cljsrn (8)
- # clojure (207)
- # clojure-berlin (3)
- # clojure-dev (18)
- # clojure-greece (1)
- # clojure-ireland (1)
- # clojure-italy (9)
- # clojure-russia (20)
- # clojure-spec (27)
- # clojure-uk (19)
- # clojurescript (110)
- # code-reviews (2)
- # cursive (7)
- # data-science (2)
- # datomic (7)
- # devcards (1)
- # emacs (4)
- # graphql (1)
- # hoplon (2)
- # immutant (15)
- # jobs (5)
- # jobs-rus (1)
- # juxt (1)
- # luminus (7)
- # lumo (26)
- # microservices (3)
- # off-topic (27)
- # om (13)
- # onyx (11)
- # pedestal (7)
- # proton (4)
- # re-frame (24)
- # remote-jobs (1)
- # spacemacs (2)
- # specter (2)
- # unrepl (31)
- # untangled (7)
- # vim (14)
@roman01la а в когниансе есть проекты на кложе?
Вроде бы один проект там есть, но я не в курсе :)
подскажите, как такое
[:name :surname :age]
преобразовать в такое
[:name :-name :surname :-surname :age :-age]
ну если по быстрому то типа так
> (def names [:name :surname :age])
> (mapcat #(vector % (->> % name (str "-") keyword)) names)
(:name :-name :surname :-surname :age :-age)
@artemyarulin спасибо!
(vec (mapcat #(vector % (->> % name (str "-") keyword)) names))
не знал о mapcat
(let [names [:foo :bar :baz]]
(time
(dotimes [n 1000000]
(->> names
(mapcat #(vector % (->> % name (str "-") keyword)))
(vec))))
(time
(dotimes [n 1000000]
(reduce
(fn [v k]
(-> v
(conj k)
(conj (->> k name (str "-") keyword))))
[] names)))
(time
(dotimes [n 1000000]
(->> names
(map #(->> % name (str "-") keyword))
(interleave names)
(vec)))))
"Elapsed time: 1751.224905 msecs"
"Elapsed time: 636.448672 msecs"
"Elapsed time: 1167.738584 msecs"
у кого-то слишком много свободного времени
круто!
господа, а как атомарно из атома прочитать и ресетнуть? никак? взять ref+dosync?
(defn flush [*queue]
(let [all-q-items @*queue]
;; рейс кондишн тут?
(reset! *queue [])
all-q-items))
вообще, задача такая: собирать в карманчик ивенты (последовательные диффы/патчи бд), и, когда приходит запрос "чо там накопилось?" – отдавать всё, что накопилось, и опустошать карманчик. (контекст: 2 треда, например мейн и воркер, в одном процессе)
хотя, если есть кто-то, кто рейскондишн организует, – значит воркера 2, и опустошать карманчик для одного уже не годится
http://stackoverflow.com/questions/43599473/get-the-state-of-an-atom-and-reset-it-atomically