Cho một bộ sưu tập Tôi muốn lặp qua tất cả các cặp trong một bộ sưu tập. Ví dụCách thành ngữ để lặp qua tất cả các cặp của bộ sưu tập trong Clojure
(all-pairs seq)
(all-pairs '(a b c d)) => ([a b] [a c] [a d] [b c] [b d] [c d]))
Đây là ý tưởng của tôi
(defn all-pairs [coll]
(for [ [idx elmt] (indexed coll)
other-elmt (subvec coll (inc idx))]
(vector elmt other-elm)))
Nhưng nó không cảm thấy thành ngữ
xin lỗi, không được công nhận, rằng các thùng chứa bên ngoài là một danh sách. Vì vậy, phiên bản chính xác là (bản đồ vec (kết hợp '(a b c d) 2)) – Thomas
+1 cho thực sự sử dụng những gì có sẵn. –