با گرفتن یک رشته از رقمها، همهی زیررشتههای پیوستهی به طول n در آن رشته را به ترتیبی که ظاهر میشوند خروجی بدهید.
برای مثال، رشتهی "49142" سریهای سهرقمی زیر را دارد:
و سریهای چهاررقمی زیر را:
و اگر از یک رشتهی پنجرقمی سری ششرقمی بخواهید، هر چه گیرتان بیاید حق خودتان است.
توجه داشته باشید که این سریها فقط باید موقعیتهای مجاور را در ورودی اشغال کنند؛ لازم نیست رقمها از نظر عددی متوالی باشند.
برای کامل کردن این تمرین باید تابع slices را پیادهسازی کنید که یک متن میگیرد و دنبالههای فرعی رقمها را با اندازهی مشخص برمیگرداند:
اگر برای نخستین بار این تمرین را حل میکنید، توصیه میشود به «امضای» ارائهشده پایبند بمانید:
slices :: Int -> String -> [[Int]]
بعداً ممکن است ایدهی خوبی باشد که به این مسئله بازگردید و با انواع داده و کتابخانههای دیگر کار کنید:
ByteString، از بستهی bytestring.Sequence، از بستهی containers.Text، از بستهی text.Vector، از بستهی vector.«مجموعهی تست» عمداً طوری طراحی شده است که تقریباً هر امضای نوعی را که منطقی باشد بپذیرد، پس تشویق میشوید امضایی را پیدا کنید که فکر میکنید بهترین است.