Ostatnio musiałem kilka razy znaleźć indeksy, a raczej zdecydowałem się na to, ponieważ było to łatwiejsze niż wymyślanie innego sposobu podejścia do problemu. Po drodze odkryłem, że moje listy Clojure nie mają metody .indexOf (Object object, int start). Z problemem poradziłem sobie tak:
(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)))))