للتعرف على فئات أحرف Unicode ، راجع http://www.fileformat.info/info/unicode/category/index.htm
يطبق هاسكل النوع "GeneralCategory" ووظيفة لتحديد "GeneralCategory" للحرف.
يتم تنفيذها على النحو التالي:
أقترح كتابة نص Python ، والذي يفعل شيئًا مشابهًا.
يتيح لنا وجود مثل هذا النوع والوظيفة في Rust تنفيذ الوظائف بشكل صحيح في وحدة "char". انظر http://haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/Data-Char.html
الوحدة النمطية قيد التنفيذ تسمى "unicode ::" في libstd حيث كنت سأقوم برسم واجهة لـ libicu. القرار ليس في الواقع بسيطًا جدًا بالنسبة لمعظم فئات الشخصيات ، وقد تم التعامل مع هذا الأمر بشكل جيد في وحدة العناية المركزة. أعتقد أننا يمكن أن نفضحها تحت core :: char إذا كان الجميع هادئًا بتبني الاعتماد على libicu؟
يوفر libicu العديد من الميزات الإضافية المرغوبة ، وربما يكون موجودًا في معظم أجهزة الكمبيوتر (تستخدمه Python ، لذا يجب أن يكون جيدًا بالنسبة لنا).
هل نريد توفير روابط libicu العامة أو استخدامها داخليًا في وحدات مثل "char" و "str" وما إلى ذلك؟
أنا أميل إلى الاتكاء على هذا الأخير.
لتنفيذ الوظائف في Rust's "char" بشكل صحيح باستخدام libicu ، أعتقد أننا نحتاج فقط إلى استدعاء وظائف مثل "u_isspace ()" ، "u_isdigit ()" ، "u_forDigit ()" (http://icu-project.org/ apiref / icu4c / uchar_8h.html).
لن نحتاج بعد إلى روابط libicu كاملة (بما في ذلك العديد من تعريفات الثوابت).
أعتقد أننا يجب أن نذهب إلى طريق libicu. انظر # 1370
هل يمكننا إعادة فتح هذا؟ لم نعد نعتمد على libicu بعد الآن ، ولكن لا تزال هناك طريقة سهلة للعثور على فئة الشخصية.
آسف للتعليق على موضوع قديم جدًا ، لقد قمت بالفعل بتنفيذ الكثير من UCD (v9.0.0) هنا . لا تعتمد على libicu ولا على المكتبة القياسية ، لذا نأمل أن تكون سهلة الاستخدام مع المشاريع (على الرغم من أنها قد لا تكون موثوقة مثل ICU).
التعليق الأكثر فائدة
آسف للتعليق على موضوع قديم جدًا ، لقد قمت بالفعل بتنفيذ الكثير من UCD (v9.0.0) هنا . لا تعتمد على libicu ولا على المكتبة القياسية ، لذا نأمل أن تكون سهلة الاستخدام مع المشاريع (على الرغم من أنها قد لا تكون موثوقة مثل ICU).