سرنام

سرنام

آسان

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

یک عبارت را به سرواژه‌اش تبدیل کنید.

اهل فناوری عاشق TLA (سرواژه‌های سه‌حرفی) خودشان هستند!

کمک کنید چند اصطلاح تخصصی بسازیم و برنامه‌ای بنویسید که نامی طولانی مانند Portable Network Graphics را به سرواژه‌اش (PNG) تبدیل کند.

با نشانه‌های نگارشی این‌طور رفتار می‌شود: خط تیره جداکننده‌ی واژه‌هاست (مثل فاصله)؛ بقیه‌ی نشانه‌های نگارشی را می‌توان از ورودی حذف کرد.

برای مثال:

ورودی خروجی
As Soon As Possible ASAP
Liquid-crystal display LCD
Thank George It's Friday! TGIF

راهنمایی‌ها

این تمرین با داده‌های متنی کار می‌کند. به دلایل تاریخی، نوع String در Haskell با [Char]، یعنی فهرستی از نویسه‌ها، هم‌معناست. برای پردازش کارآمدتر داده‌های متنی می‌توان از نوع Text استفاده کرد.

به‌عنوان یک گسترش اختیاری برای این تمرین می‌توانید

  • درباره‌ی انواع رشته در Haskell بخوانید.

  • - text را به فهرست وابستگی‌هایتان در package.yaml اضافه کنید.

  • Data.Text را به این شکل وارد کنید:

      import qualified Data.Text as T
      import           Data.Text (Text)
    
  • حالا می‌توانید مثلاً abbreviate :: Text -> Text بنویسید و به ترکیب‌گرهای Data.Text مثلاً به شکل T.filter ارجاع دهید.

  • مستندات Data.Text را ببینید.

این بخش کاملاً اختیاری است.


منبع

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

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

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

بررسی عمیق سرنام!

نگاهی ملایم به عبارت‌های باقاعده می‌اندازیم: از تطبیق ساده‌ی فاصله‌های خالی شروع می‌کنیم، یونیکد را بررسی می‌کنیم و در پایان به پسنگرهای منفی می‌رسیم. در آخر هم چند رویکرد دیگر برای سرنام را بررسی می‌کنیم، از جمله ماشین‌های حالت.