Вы можете использовать map
(defn my-interpose [sep coll]
(rest (apply concat (map #(vector sep %) coll))))
или напрямую уменьшить и вычислить ответ по ходу
(defn my-interpose [sep coll]
(rest (reduce #(conj %1 sep %2) [] coll)))
Идея заключается в том, чтобы вычислить последовательность, подобную (sep x0 sep x1 sep x2 ... sep xn)
, а затем пропустить первый элемент, чтобы получить (x0 sep x1 sep x2 ... xn)
.