Dato una raccolta, voglio ripetere tutte le coppie in una raccolta. EsempioModo idiomatico per scorrere tutte le coppie di una raccolta in Clojure
(all-pairs seq)
(all-pairs '(a b c d)) => ([a b] [a c] [a d] [b c] [b d] [c d]))
Qui è la mia idea
(defn all-pairs [coll]
(for [ [idx elmt] (indexed coll)
other-elmt (subvec coll (inc idx))]
(vector elmt other-elm)))
Ma non si sente idiomatica
scusa, non riconosciuto, che il contenitore esterno è una lista. Quindi la versione corretta è (map vec (combinazioni '(a b c d) 2)) – Thomas
+1 per usare effettivamente ciò che è disponibile. –