आपातकालीन सामान की एक खेप आ गई है, लेकिन एक समस्या है। नुकसान से बचाने के लिए हर चीज़ डिब्बों में बंद करके रखी गई है, चाहे वह टॉर्च हो, प्राथमिक चिकित्सा किट हो या कंबल। इनमें से कुछ डिब्बे तो कई परतों तक दूसरे डिब्बों के अंदर घुसे हुए हैं!
आपातकाल के समय तैयार रहने के लिए ज़रूरी है कि सारी चीज़ें एक ही डिब्बे में आसानी से मिल जाएँ। क्या आप सारा सामान डिब्बों से निकालकर एक ही डिब्बे में रख सकते हैं, ताकि सबसे ज़्यादा ज़रूरत पड़ने पर वह तैयार हो?
किसी भी गहराई का नेस्टेड ऐरे लीजिए और उसे पूरी तरह समतल करके लौटाइए।
ध्यान रखें कि कुछ भाषा ट्रैक इनपुट ऐरे में null जैसी वैल्यू भी शामिल कर सकते हैं। इन वैल्यू को दर्शाने का तरीका हर ट्रैक में अलग होता है। ऐसी वैल्यू को समतल किए गए ऐरे से हटा देना चाहिए।
इसके अलावा, ट्रैक के हिसाब से इनपुट का डेटा टाइप अलग हो सकता है और उसमें अलग-अलग टाइप की वैल्यू भी हो सकती हैं।
विवरण के लिए टेस्ट सूट देखिए।
इनपुट: [1, [2, 6, null], [[null, [4]], 5]]
आउटपुट: [1, 2, 6, 4, 5]
ऊपर दिए गए निर्देश एक साझा रिपॉज़िटरी से तालमेल में रखे जाते हैं, ताकि सभी भाषाओं के ट्रैक में एकरूपता बनी रहे। यह परिशिष्ट ज़रूरत पड़ने पर अतिरिक्त स्पष्टता देता है या निर्देशों में बदलाव करता है, ताकि ये Clojure ट्रैक के उद्देश्यों से बेहतर तरीके से मेल खाएँ।
Clojure ट्रैक के इस अभ्यास में आप यह मान सकते हैं कि इनपुट वेक्टर का कोई भी नेस्टेड संयोजन है, और आउटपुट एक वेक्टर है, जैसा कि टेस्ट बताते हैं। हालाँकि यह कोई सख्त शर्त नहीं है। आप यह भी मान सकते हैं कि इनपुट क्रम में आने वाली चीज़ों (ऐरे, वेक्टर, आदि) का कोई भी नेस्टेड संयोजन हो और आउटपुट एक सीक्वेंस हो।
Exercism पर साइन अप कीजिए और Clojure को 12 कॉन्सेप्ट105 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।