نظيف تمامًا

نظيف تمامًا

تمرين تعلّمي

مقدمة

عمليات الأحرف

أحرف Clojure هي قيم أولية من النوع java.lang.Character، ويمكننا التعامل معها عبر التشغيل البيني باستخدام الطرق في صنف Character:

(Character/isDigit \2)
;;=> true

أدوات السلاسل النصية

تأتي Clojure مزودة بمكتبة قوية لمعالجة السلاسل النصية، clojure.string. وهذا غالبًا ما يكون أكثر توافقًا مع أسلوب Clojure من التشغيل البيني.

التعليمات

في هذا التمرين ستُنفّذ مجموعة جزئية من الدوال المساعدة لمساعدة مطوّر على تنظيف أسماء المعرّفات.

في المهام 5 ستبني تدريجيًا الدالة clean. يتكوّن المعرّف الصالح من صفر أو أكثر من الحروف والشرطات السفلية.

في جميع الحالات، السلسلة النصية المُدخلة مضمون ألا تكون nil. وإذا مُرّرت سلسلة نصية فارغة إلى الدالة، فيجب إرجاع سلسلة نصية فارغة.

لاحظ أنه ينبغي على المُستدعي تجنّب استدعاء الدالة بمعرّف فارغ، لأن مثل هذه المعرّفات عديمة الجدوى.

1. استبدل أي مسافات تصادفها بشرطات سفلية

نفّذ الدالة clean لاستبدال أي مسافات بشرطات سفلية. وينطبق هذا أيضًا على المسافات في البداية والنهاية.

(clean "my   Id")
;;=> "my___Id"

2. استبدل محارف التحكم بالسلسلة النصية "CTRL" المكتوبة بحروف كبيرة

عدّل الدالة clean لتستبدل محارف التحكم بالسلسلة النصية "CTRL" المكتوبة بحروف كبيرة. يُعدّ المحرف محرف تحكم ISO إذا كان رمزه في النطاق من '\u0000' إلى '\u001F' أو في النطاق من '\u007F' إلى '\u009F'.

(clean "my\u007FId")
;;=> "myCTRLId"

3. حوّل kebab-case إلى camelCase

عدّل الدالة clean لتحوّل kebab-case إلى camelCase.

(clean "à-ḃç")
;;=> "àḂç"

4. احذف المحارف التي ليست حروفًا

عدّل الدالة clean لتحذف أي محارف ليست حروفًا. ملاحظة: يجب الإبقاء على الشرطات السفلية من الخطوة السابقة.

(clean "1😀2😀3😀")
;; => ""

5. احذف الحروف اليونانية الصغيرة

عدّل الدالة clean لتحذف أي حروف يونانية في النطاق من 'α' إلى 'ω'.

(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Clojure Exercism

مستعد لبدء نظيف تمامًا؟

سجّل في Exercism لتتعلّم وتتقن Clojure عبر 12 مفهومًا105 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.