I have a sequence s and a list of indexes into this sequence indexes. How do I retain only the items given via the indexes?
s
indexes
Simple example:
(defn filter-by-index [seq idxs] (let [idxs (into #{} idxs)] (reduce (fn [h [char idx]] (if (contains? idxs idx) (conj h char) h)) [] (partition 2 (interleave seq (iterate inc 0)))))) (filter-by-index [\a \b \c \d \e \f \g] [0 2 3 4]) =>[\a \c \d \e]