دنباله

دنباله

متوسط

دستورالعمل‌ها

با گرفتن یک رشته از رقم‌ها، همه‌ی زیررشته‌های پیوسته‌ی به طول n در آن رشته را به ترتیبی که ظاهر می‌شوند خروجی بدهید.

برای مثال، رشته‌ی "49142" سری‌های سه‌رقمی زیر را دارد:

  • "491"
  • "914"
  • "142"

و سری‌های چهاررقمی زیر را:

  • "4914"
  • "9142"

و اگر از یک رشته‌ی پنج‌رقمی سری شش‌رقمی بخواهید، هر چه گیرتان بیاید حق خودتان است.

توجه داشته باشید که این سری‌ها فقط باید موقعیت‌های مجاور را در ورودی اشغال کنند؛ لازم نیست رقم‌ها از نظر عددی متوالی باشند.

راهنماها

برای کامل کردن این تمرین باید تابع slices را پیاده‌سازی کنید که یک متن می‌گیرد و دنباله‌های فرعی رقم‌ها را با اندازه‌ی مشخص برمی‌گرداند:

اگر برای نخستین بار این تمرین را حل می‌کنید، توصیه می‌شود به «امضای» ارائه‌شده پایبند بمانید:

slices :: Int -> String -> [[Int]]

بعداً ممکن است ایده‌ی خوبی باشد که به این مسئله بازگردید و با انواع داده و کتابخانه‌های دیگر کار کنید:

  • ByteString، از بسته‌ی bytestring.
  • Sequence، از بسته‌ی containers.
  • Text، از بسته‌ی text.
  • Vector، از بسته‌ی vector.

«مجموعه‌ی تست» عمداً طوری طراحی شده است که تقریباً هر امضای نوعی را که منطقی باشد بپذیرد، پس تشویق می‌شوید امضایی را پیدا کنید که فکر می‌کنید بهترین است.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Haskell Exercism

آماده‌اید دنباله را شروع کنید؟

در Exercism ثبت‌نام کنید تا Haskell را همراه با 107 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.