لقد اكتشفت فجوة في سوق التواصل الاجتماعي الخاص بالمنشورات القصيرة جدًا جدًا. وبما أن Twitter أصبح يسمح بمنشورات من 280 حرفًا، لم يعد من يريد تحديثات سريعة على وسائل التواصل الاجتماعي يجد ما يلبّي حاجته. فتقرر إنشاء شبكتك الخاصة للتواصل الاجتماعي.
ولجعل منتجك لافتًا للنظر، تجعله متطرفًا وتسمح فقط بمنشورات من 5 أحرف أو أقل. وأي منشور يزيد على 5 أحرف يجب اقتطاعه إلى 5.
وللسماح لمستخدميك بالتعبير عن أنفسهم بالكامل، تسمح باستخدام الإيموجي وغيرها من أحرف Unicode.
مهمتك هي اقتطاع السلاسل النصية المُدخلة إلى 5 أحرف.
النص المخزَّن رقميًا يجب تحويله إلى تسلسل من البايتات. وهناك 3 أساليب شائعة لربط الأحرف بالبايتات.
إن UTF-8 وUTF-16 ترميزان من ترميزات Unicode، ما يعني أنهما قادران على تمثيل نطاق هائل من الأحرف، منها:
كلا الترميزين UTF-8 وUTF-16 متغيّرا الطول، ما يعني أن الأحرف المختلفة تشغل مساحات مختلفة.
تأمّل الحرف 'a' والإيموجي '😛'. في UTF-16 يشغل الحرف بايتين، بينما يشغل الإيموجي 4 بايتات.
الحيلة في هذا التمرين هي استخدام واجهات API المصممة حول أحرف Unicode (نقاط الترميز) بدلًا من وحدات الترميز في Unicode.
في الإصدار 8.1، كانت سلاسل Tcl النصية قادرة على التعامل مع محارف يونيكود بسلاسة. وكان ذلك آنذاك إنجازًا رائدًا إلى حد بعيد. غير أنه مع إنشاء المزيد والمزيد من محارف يونيكود، تخلفت قدرة Tcl على التعامل معها.
لم يكن تنفيذ Tcl الداخلي قادرًا إلا على التعامل مع محارف يونيكود ذات 16 بت، وهي لا تغطي سوى أول 65,526 محرفًا. صفحة Tcl على الويكي، ولا سيما النقاش حول لغة "AndroWish"، تشرح الأسباب.
Tcl 9.0 هي أول إصدار قادر على التعامل مع مجموعة محارف يونيكود الكاملة. وبالتالي، لا يمكن حل هذا التمرين (بسهولة) إلا باستخدام Tcl الإصدار 9.0.
سجّل في Exercism لتتعلّم وتتقن Tcl عبر 135 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.