আসুন ভুলে বিশ্বাসভাজন পুরাতন যে into
আপনি কিছু নিতে দেয় seq
সক্ষম (তালিকা, ভেক্টর, মানচিত্র, সেট, সাজানো মানচিত্রে) এবং একটি খালি কন্টেইনারে আপনি ভরা চান, এবং এটা বন্ধ রাখে 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
আশেপাশের একটি মোড়ক conj
, যা সংগ্রহের ধরণের ভিত্তিতে নতুন এন্ট্রিগুলি যথাযথভাবে সন্নিবেশ করানোর জন্য বেস বিমূর্ততা। ঠিক যে এই প্রবাহ যাতে সুন্দরভাবে করে তোলে Clojure মধ্যে build হয় composable বিমূর্ত এই ক্ষেত্রে into
শীর্ষে conj
সংগ্রহ উপরের এবং এর seq
।
উপরোক্ত উদাহরণগুলি এখনও ভালভাবে রচনা করতে পারে যদি প্রাপকটি রান সময়ে পাস করা হত: কারণ অন্তর্নিহিত বিমূর্ততা ( seq
এবং conj
) সমস্ত সংগ্রহের জন্য প্রয়োগ করা হয়েছে (এবং জাভা এর অনেকগুলি সংগ্রহও), তাই উচ্চতর বিমূর্ততাগুলি উদ্বেগের দরকার নেই প্রচুর বিশেষ ডেটা সম্পর্কিত কোণার কেস সম্পর্কে about