Unutmayalım ki, güvenilir eski , mümkün olan into
her şeyi seq
(liste, vektör, harita, küme, sıralı harita) ve doldurmak istediğiniz boş bir kabı alıp koymanıza izin verir into
.
(into [] '(1 2 3 4)) ==> [1 2 3 4] "have a lazy list and want a vector"
(into #{} [1 2 3 4]) ==> #{1 2 3 4} "have a vector and want a set"
(into {} #{[1 2] [3 4]}) ==> {3 4, 1 2} "have a set of vectors want a map"
(into #{} [{1 2} {3 4}]) ==> #{{1 2} {3 4}} "have a vector of maps want a set of maps"
into
etrafında sarıcı conj
toplama türüne göre bir koleksiyonu halinde uygun bir şekilde, yeni girdileri sokulması için temel soyutlamasıdır. Bu akışı bu kadar güzel kılan ilke, Clojure'un , bu durumda koleksiyonun into
üstüne ve conj
üzerine , birleştirilebilir soyutlamalar üzerine inşa edilmesidir seq
.
Yukarıdaki örnekler, alıcı çalışma zamanında aktarılıyor olsaydı yine de iyi bir şekilde oluşturacaktır: çünkü temeldeki soyutlamalar ( seq
ve conj
) tüm koleksiyonlar için (ve Java'nın koleksiyonlarının çoğu için de) uygulanmaktadır, bu nedenle yüksek soyutlamaların endişelenmesine gerek yoktur verilerle ilgili çok sayıda özel durum.