یک عبارت را به سرواژهاش تبدیل کنید.
اهل فناوری عاشق 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 را ببینید.
این بخش کاملاً اختیاری است.
در Exercism ثبتنام کنید تا Haskell را همراه با 107 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.
نگاهی ملایم به عبارتهای باقاعده میاندازیم: از تطبیق سادهی فاصلههای خالی شروع میکنیم، یونیکد را بررسی میکنیم و در پایان به پسنگرهای منفی میرسیم. در آخر هم چند رویکرد دیگر برای سرنام را بررسی میکنیم، از جمله ماشینهای حالت.