KC
Size: a a a
KC
ST
KC
(defn distinct-by
([f]
(fn [rf]
(let [seen (volatile! #{})]
(fn
([] (rf))
([result] (rf result))
([result input]
(let [p (f input)]
(if (contains? @seen p)
result
(do (vswap! seen conj p)
(rf result input)))))))))
([f coll] (sequence (distinct-by f) coll)))
ap
KC
ap
DL
(->> maps
(group-by :id)
(mapv (comp first val)))
ap
DF
DF
(->> maps
(group-by :id)
vals
(mapv first))
KC
DL
AK
AK
AB
AB
ST
AB
AB