Нещодавно мені довелося кілька разів знаходити індекси, а точніше, я вирішив, оскільки це було простіше, ніж з’ясувати інший спосіб підходу до проблеми. По дорозі я виявив, що в моїх списках Clojure не було методу .indexOf (Object object, int start). Я вирішив проблему так:
(defn index-of
"Returns the index of item. If start is given indexes prior to
start are skipped."
([coll item] (.indexOf coll item))
([coll item start]
(let [unadjusted-index (.indexOf (drop start coll) item)]
(if (= -1 unadjusted-index)
unadjusted-index
(+ unadjusted-index start)))))