This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-01-06
Channels
- # architecture (8)
- # aws (2)
- # beginners (156)
- # boot (163)
- # cider (22)
- # cljs-dev (2)
- # cljsrn (11)
- # clojars (6)
- # clojure (328)
- # clojure-austin (7)
- # clojure-dusseldorf (10)
- # clojure-italy (2)
- # clojure-russia (19)
- # clojure-spec (178)
- # clojure-uk (86)
- # clojurescript (81)
- # cursive (17)
- # datomic (33)
- # funcool (40)
- # hoplon (8)
- # jobs (5)
- # klipse (13)
- # leiningen (1)
- # luminus (21)
- # off-topic (140)
- # om (49)
- # om-next (4)
- # onyx (29)
- # planck (5)
- # protorepl (2)
- # re-frame (58)
- # reagent (2)
- # remote-jobs (4)
- # ring-swagger (16)
- # testing (1)
- # untangled (26)
- # yada (27)
чота туплю, а как мне отфильтровать вектор но получить все что отфильтровалось и все что нет (т.е. тип разделить на 2 части) (partition-by even? (range 10))
вернет 10 листов, эт не то
т.е. охота типа
(let [in (range 10)]
[(filter even? in)
(filter (comp not even?) in)])
;;=> [(0 2 4 6 8) (1 3 5 7 9)]
хм, (vals (group-by even? (range 10)))
работает, но вроде было че еще короче не?
собственно group-by и juxt в конце
а точно, вот тут я и читалх про juxt да. Хотя оставлю group-by, как понимаю с juxt коллекция проходится 2 раза, не особо отличается от если б я 2 фильтра сделал
@artemyarulin https://github.com/clojure/clojure/blob/010864f8ed828f8d261807b7345f1a539c5b20df/src/clj/clojure/core.clj#L2467
ага да я про него
хотя по ходу похер, на коленке если прогнать тест то
juxt "Elapsed time: 639.087162 msecs”
group-by "Elapsed time: 838.80575 msecs”
даже быстрее juxt, я ожидал наоборот, хотя мож тест не ахти
я бы сказал, что если тебе так нужна производительность, то напиши на loop/recur свой вариант
тру, спасиб 👍
(reduce
(fn [r i]
(if (even? i)
(update r 1 conj i)
(update r 0 conj i)))
[[] []]
(range 10))
;; [[1 3 5 7 9] [0 2 4 6 8]]

груп бай такой же почти
(defn group-by [f coll]
(persistent!
(reduce
(fn [ret x]
(let [k (f x)]
(assoc! ret k (conj (get ret k []) x))))
(transient {}) coll)))
ха, прикольно