Use seq/next idiom in enumerate instead of empty?/rest

Replace (empty? items) + (rest items) with (seq items) + (next items)
in enumerate. The seq/next pattern is idiomatic Clojure and avoids
the overhead of empty? which internally calls seq and then negates.
This commit is contained in:
Andrey Antukh 2026-04-14 20:06:13 +00:00 committed by Belén Albeza
parent 92dd5d9954
commit 1cc860807e

View File

@ -252,13 +252,13 @@
([items] (enumerate items 0))
([items start]
(loop [idx start
items items
items (seq items)
res (transient [])]
(if (empty? items)
(persistent! res)
(if items
(recur (inc idx)
(rest items)
(conj! res [idx (first items)]))))))
(next items)
(conj! res [idx (first items)]))
(persistent! res)))))
(defn group-by
([kf coll] (group-by kf identity [] coll))