Clojure में अक्षर java.lang.Character प्रिमिटिव होते हैं, और हम Character class के मेथड इस्तेमाल करते हुए इंटरऑप के ज़रिए उन पर काम कर सकते हैं:
(Character/isDigit \2)
;;=> true
Clojure के साथ एक शक्तिशाली स्ट्रिंग प्रोसेसिंग लाइब्रेरी, clojure.string, आती है। यह अक्सर इंटरऑप से ज़्यादा स्वाभाविक होती है।
इस अभ्यास में आप कुछ उपयोगी रूटीन बनाएँगे, जो एक डेवलपर को आइडेंटिफायर के नाम साफ करने में मदद करेंगे।
इन 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 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।