Đừng quên rằng cái cũ đáng tin cậy intocho phép bạn lấy bất cứ thứ gì seqcó thể (danh sách, vectơ, bản đồ, tập hợp, bản đồ được sắp xếp) và một vùng chứa trống mà bạn muốn lấp đầy và đặt intonó.
(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"
intolà một trình bao bọc xung quanh conj, là phần trừu tượng cơ sở để chèn các mục nhập mới một cách thích hợp vào một tập hợp dựa trên loại tập hợp. Nguyên tắc làm cho dòng chảy này trở nên độc đáo là Clojure được xây dựng dựa trên sự trừu tượng có thể kết hợp , trong trường hợp này intolà conjtrên đầu trang của bộ sưu tập và seq.
Các ví dụ trên sẽ vẫn soạn tốt nếu người nhận được chuyển vào lúc chạy: bởi vì các phần trừu tượng cơ bản ( seqvà conj) được triển khai cho tất cả các tập hợp (và nhiều tập hợp của Java cũng vậy), vì vậy các phần trừu tượng cao hơn không cần phải lo lắng về rất nhiều trường hợp góc liên quan đến dữ liệu đặc biệt.