আপনি সোশ্যাল মিডিয়ার বাজারে খুব খুব ছোট পোস্টের একটি ফাঁক খুঁজে পেয়েছেন। এখন Twitter ২৮০ ক্যারেক্টারের পোস্টের অনুমতি দেওয়ায়, দ্রুত সোশ্যাল মিডিয়া আপডেট চাওয়া মানুষদের চাহিদা পূরণ হচ্ছে না। আপনি নিজের একটি সোশ্যাল মিডিয়া নেটওয়ার্ক বানানোর সিদ্ধান্ত নিলেন।
আপনার প্রোডাক্টকে উল্লেখযোগ্য করে তুলতে আপনি এটিকে চরম পর্যায়ে নিয়ে যান এবং কেবল ৫টি বা তার কম ক্যারেক্টারের পোস্টের অনুমতি দেন। ৫ ক্যারেক্টারের বেশি যেকোনো পোস্ট ৫ ক্যারেক্টারে ছেঁটে দেওয়া উচিত।
আপনার ইউজাররা যাতে নিজেদের পূর্ণভাবে প্রকাশ করতে পারে, সেজন্য আপনি ইমোজি আর অন্যান্য ইউনিকোডের অনুমতি দেন।
কাজটি হলো ইনপুট স্ট্রিংগুলোকে ৫ ক্যারেক্টারে ছেঁটে দেওয়া।
ডিজিটালভাবে সংরক্ষিত টেক্সটকে বাইটের একটি ধারায় রূপান্তর করতে হয়। ক্যারেক্টারকে বাইটে ম্যাপ করার তিনটি প্রচলিত উপায় আছে।
UTF-8 আর UTF-16 দুটোই ইউনিকোড এনকোডিং, অর্থাৎ এরা বিশাল পরিসরের ক্যারেক্টার উপস্থাপন করতে পারে, যার মধ্যে আছে:
UTF-8 আর UTF-16 দুটোই ভ্যারিয়েবল লেংথ এনকোডিং, অর্থাৎ ভিন্ন ভিন্ন ক্যারেক্টার ভিন্ন পরিমাণ জায়গা নেয়।
'a' অক্ষরটি আর '😛' ইমোজিটি বিবেচনা করুন। UTF-16-তে অক্ষরটি ২ বাইট নেয়, কিন্তু ইমোজিটি নেয় ৪ বাইট।
এই অনুশীলনীর আসল কৌশল হলো, ইউনিকোড কোড ইউনিটের বদলে ইউনিকোড ক্যারেক্টার (কোডপয়েন্ট) ঘিরে তৈরি করা API ব্যবহার করা।
8.1 সংস্করণে Tcl-এর স্ট্রিংগুলো ইউনিকোড ক্যারেক্টার অনায়াসে সামলাতে পারত। সে সময়ে এটি সত্যিই ছিল এক যুগান্তকারী ঘটনা। কিন্তু ক্রমে আরও আরও ইউনিকোড ক্যারেক্টার তৈরি হওয়ার সাথে সাথে সেগুলো সামলানোর ক্ষেত্রে Tcl পিছিয়ে পড়তে থাকে।
Tcl-এর অভ্যন্তরীণ ইমপ্লিমেন্টেশন কেবল ১৬-বিটের ইউনিকোড ক্যারেক্টার সামলাতে পারত, যা কেবল প্রথম ৬৫,৫২৬টি ক্যারেক্টার ধরে। এই Tcl উইকি পেজে, বিশেষ করে "AndroWish" ভাষা নিয়ে আলোচনায়, এর কারণগুলো ব্যাখ্যা করা আছে।
Tcl 9.0 হলো প্রথম সংস্করণ, যা ইউনিকোডের পুরো ক্যারেক্টার সেট সামলাতে পারে। ফলে এই অনুশীলনীটি (সহজে) সমাধান করা যায় কেবল Tcl 9.0 সংস্করণ দিয়েই।
Exercism-এ সাইন আপ করুন, Tcl ট্র্যাকের 135টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।