अंकों की एक स्ट्रिंग दी गई है। आपको उस स्ट्रिंग में लंबाई n की सभी लगातार सबस्ट्रिंग आउटपुट के रूप में उसी क्रम में देनी हैं जिस क्रम में वे आती हैं।
उदाहरण के लिए, स्ट्रिंग "49142" में 3 अंकों वाली ये सीरीज़ होती हैं:
और 4 अंकों वाली ये सीरीज़:
और अगर आप 5 अंकों की स्ट्रिंग से 6 अंकों की सीरीज़ माँगेंगे, तो जो मिलेगा उसके हकदार आप खुद होंगे।
ध्यान दीजिए कि इन सीरीज़ को इनपुट में सिर्फ आस-पास की जगहें लेनी होती हैं; अंकों का संख्यात्मक रूप से लगातार होना ज़रूरी नहीं है।
इस अभ्यास को पूरा करने के लिए आपको slices फंक्शन बनाना है, जो एक टेक्स्ट लेता है और निर्दिष्ट आकार वाले अंकों के उपानुक्रम लौटाता है:
यदि आप पहली बार यह अभ्यास हल कर रहे हैं, तो सलाह दी जाती है कि आप दिए गए सिग्नेचर का ही पालन करें:
slices :: Int -> String -> [[Int]]
बाद में, यह एक अच्छा विचार हो सकता है कि आप इस समस्या पर फिर से विचार करें और अन्य डेटा टाइपों और लाइब्रेरीज़ के साथ प्रयोग करें:
ByteString, bytestring पैकेज से.Sequence, containers पैकेज से.Text, text पैकेज से.Vector, vector पैकेज से.यह टेस्ट सूट जानबूझकर ऐसा बनाया गया है कि यह लगभग किसी भी ऐसे टाइप सिग्नेचर को स्वीकार कर ले जो तर्कसंगत हो, इसलिए आपको प्रोत्साहित किया जाता है कि आप वह सिग्नेचर चुनें जो आपको सबसे अच्छा लगे।
Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।