জরুরি সরবরাহের একটি চালান এসে পৌঁছেছে, কিন্তু একটি সমস্যা আছে। ক্ষতি থেকে রক্ষা করতে জিনিসপত্রগুলো, অর্থাৎ টর্চলাইট, প্রাথমিক চিকিৎসার কিট আর কম্বল, বাক্সের ভেতরে ভরে রাখা আছে, আর সেই বাক্সগুলোর কয়েকটি আবার অন্য বাক্সের ভেতরে কয়েক স্তর গভীরে নেস্টেড!
জরুরি অবস্থার জন্য প্রস্তুত থাকতে হলে সব কিছু একটি বাক্সেই সহজে হাতের নাগালে থাকতে হবে। আপনি কি সব সরবরাহ খুলে একটি বাক্সে ভরে দিতে পারবেন, যাতে সবচেয়ে বেশি প্রয়োজন হলে সেগুলো প্রস্তুত থাকে?
যেকোনো গভীরতার একটি নেস্টেড অ্যারে নিন এবং সম্পূর্ণ ফ্ল্যাট করা একটি অ্যারে রিটার্ন করুন।
লক্ষ্য করুন, কিছু প্রোগ্রামিং ভাষার ট্র্যাকে ইনপুট অ্যারেতে null-এর মতো মান থাকতে পারে, আর এই মানগুলো কীভাবে দেখানো হয় তা ট্র্যাকভেদে আলাদা। এমন মান ফ্ল্যাট করা অ্যারে থেকে বাদ দেওয়া উচিত।
এছাড়াও, ট্র্যাক অনুযায়ী ইনপুট ভিন্ন ডেটা টাইপের হতে পারে এবং ভিন্ন ভিন্ন টাইপ থাকতে পারে।
বিস্তারিত জানতে টেস্ট স্যুট দেখুন।
ইনপুট: [1, [2, 6, null], [[null, [4]], 5]]
আউটপুট: [1, 2, 6, 4, 5]
উপরের নির্দেশনাগুলো একটি শেয়ার করা রিপোজিটরির সাথে সিঙ্ক্রোনাইজ করা, যাতে সব ভাষার ট্র্যাক জুড়ে সামঞ্জস্য বজায় থাকে। এই পরিশিষ্টটি প্রয়োজন অনুযায়ী অতিরিক্ত স্পষ্টীকরণ দেয় বা নির্দেশনাগুলো পরিবর্তন করে, যাতে সেগুলো Clojure ট্র্যাকের লক্ষ্যের সাথে আরও ভালোভাবে মেলে।
Clojure ট্র্যাকের এই অনুশীলনীর ক্ষেত্রে আপনি ধরে নিতে পারেন যে ইনপুট হলো ভেক্টরের যেকোনো নেস্টেড সংমিশ্রণ, আর আউটপুট হলো একটি ভেক্টর, যেমনটি টেস্টগুলো দেখাচ্ছে। তবে এটি কোনো কঠোর বাধ্যবাধকতা নয়; আপনি স্বাধীনভাবে ধরে নিতে পারেন যে ইনপুট হলো সিকোয়েন্সিয়াল বস্তুর (লিস্ট, ভেক্টর ইত্যাদি) যেকোনো নেস্টেড সংমিশ্রণ, আর আউটপুট হলো একটি সিকোয়েন্স।
Exercism-এ সাইন আপ করুন, Clojure ট্র্যাকের 12টি কনসেপ্ট105টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।