Stuart Halloway a donné une très belle réponse à ce post http://www.mail-archive.com/clojure@googlegroups.com/msg34159.html.
(use '[clojure.contrib.seq :only (positions)])
(def v ["one" "two" "three" "two"])
(positions #{"two"} v) ; -> (1 3)
Si vous souhaitez saisir la première valeur juste utiliser first
sur le résultat.
(first (positions #{"two"} v)) ; -> 1
EDIT: en clojure.contrib.seq
a disparu j'ai mis à jour ma réponse avec un exemple simple de mise en œuvre:
(defn positions
[pred coll]
(keep-indexed (fn [idx x]
(when (pred x)
idx))
coll))