أحرف Clojure هي قيم أولية من النوع java.lang.Character، ويمكننا التعامل معها عبر التشغيل البيني باستخدام الطرق في صنف Character:
(Character/isDigit \2)
;;=> true
تأتي Clojure مزودة بمكتبة قوية لمعالجة السلاسل النصية، clojure.string. وهذا غالبًا ما يكون أكثر توافقًا مع أسلوب Clojure من التشغيل البيني.
في هذا التمرين ستُنفّذ مجموعة جزئية من الدوال المساعدة لمساعدة مطوّر على تنظيف أسماء المعرّفات.
في المهام 5 ستبني تدريجيًا الدالة clean. يتكوّن المعرّف الصالح من صفر أو أكثر من الحروف والشرطات السفلية.
في جميع الحالات، السلسلة النصية المُدخلة مضمون ألا تكون nil. وإذا مُرّرت سلسلة نصية فارغة إلى الدالة، فيجب إرجاع سلسلة نصية فارغة.
لاحظ أنه ينبغي على المُستدعي تجنّب استدعاء الدالة بمعرّف فارغ، لأن مثل هذه المعرّفات عديمة الجدوى.
نفّذ الدالة clean لاستبدال أي مسافات بشرطات سفلية. وينطبق هذا أيضًا على المسافات في البداية والنهاية.
(clean "my Id")
;;=> "my___Id"
عدّل الدالة clean لتستبدل محارف التحكم بالسلسلة النصية "CTRL" المكتوبة بحروف كبيرة. يُعدّ المحرف محرف تحكم ISO إذا كان رمزه في النطاق من '\u0000' إلى '\u001F' أو في النطاق من '\u007F' إلى '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
عدّل الدالة clean لتحوّل kebab-case إلى camelCase.
(clean "à-ḃç")
;;=> "àḂç"
عدّل الدالة clean لتحذف أي محارف ليست حروفًا.
ملاحظة: يجب الإبقاء على الشرطات السفلية من الخطوة السابقة.
(clean "1😀2😀3😀")
;; => ""
عدّل الدالة clean لتحذف أي حروف يونانية في النطاق من 'α' إلى 'ω'.
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
سجّل في Exercism لتتعلّم وتتقن Clojure عبر 12 مفهومًا105 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.