একটি ফ্রেজকে তার অ্যাক্রোনিমে রূপান্তর করুন।
টেক-প্রেমীরা তাঁদের TLA (Three Letter Acronyms, অর্থাৎ তিন অক্ষরের অ্যাক্রোনিম) ভালোবাসেন!
Portable Network Graphics-এর মতো লম্বা নামকে তার অ্যাক্রোনিমে (PNG) রূপান্তর করে এমন একটি প্রোগ্রাম লিখে কিছু জার্গন বানাতে সাহায্য করুন।
যতিচিহ্ন এভাবে সামলানো হয়: হাইফেন শব্দের বিভাজক (হোয়াইটস্পেসের মতো); বাকি সব যতিচিহ্ন ইনপুট থেকে সরিয়ে ফেলা যায়।
যেমন:
| ইনপুট | আউটপুট |
|---|---|
| As Soon As Possible | ASAP |
| Liquid-crystal display | LCD |
| Thank George It's Friday! | TGIF |
এই অনুশীলনীতে টেক্সট ডেটা নিয়ে কাজ করা হয়। ঐতিহাসিক কারণে Haskell-এর String টাইপ [Char]-এর সমার্থক, যা ক্যারেক্টারের একটি অ্যারে। টেক্সট ডেটা আরও দক্ষতার সাথে পরিচালনা করার জন্য Text টাইপ ব্যবহার করা যেতে পারে।
এই অনুশীলনীর ঐচ্ছিক সম্প্রসারণ হিসেবে আপনি:
Haskell-এ স্ট্রিং টাইপ সম্পর্কে পড়ুন।
package.yaml-এ আপনার ডিপেন্ডেন্সির তালিকায় - text যোগ করুন।
Data.Text এইভাবে ইমপোর্ট করুন:
import qualified Data.Text as T
import Data.Text (Text)
এখন আপনি যেমন abbreviate :: Text -> Text লিখতে পারেন এবং Data.Text-এর কম্বিনেটরগুলোকে যেমন T.filter হিসেবে উল্লেখ করতে পারেন।
Data.Text-এর ডকুমেন্টেশন দেখুন।
এই অংশটি সম্পূর্ণ ঐচ্ছিক।
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
আমরা রেগুলার এক্সপ্রেশন নিয়ে একটু গভীরে যাই, শুরু করি সাধারণ হোয়াইটস্পেস ম্যাচিং দিয়ে, এরপর ইউনিকোড ঘুরে দেখি, আর শেষ করি নেগেটিভ লুকবিহাইন্ড দিয়ে। শেষে সংক্ষিপ্ত রূপের আরও কিছু সমাধানও দেখি, যার মধ্যে স্টেট মেশিনও আছে।