Clojure ক্যারেক্টারগুলো java.lang.Character প্রিমিটিভ, আর ইন্টারঅপ ব্যবহার করে Character ক্লাসের মেথড দিয়ে আমরা এগুলো নিয়ে কাজ করতে পারি:
(Character/isDigit \2)
;;=> true
Clojure-এর সাথে একটি শক্তিশালী স্ট্রিং প্রসেসিং লাইব্রেরি আসে, clojure.string। এটি প্রায়ই ইন্টারঅপের চেয়ে বেশি ইডিওম্যাটিক।
এই অনুশীলনীতে আপনি ডেভেলপারকে আইডেন্টিফায়ার নাম পরিষ্কার করতে সাহায্য করার জন্য কিছু ইউটিলিটি রুটিনের একটি আংশিক সেট তৈরি করবেন।
৫টি কাজে আপনি ধীরে ধীরে clean ফাংশনটি গড়ে তুলবেন। একটি বৈধ আইডেন্টিফায়ার শূন্য বা তার বেশি অক্ষর ও আন্ডারস্কোর দিয়ে গঠিত।
সব ক্ষেত্রেই ইনপুট স্ট্রিংটি কখনো nil হবে না, এটা নিশ্চিত। ফাংশনে যদি একটি খালি স্ট্রিং পাঠানো হয়, তবে খালি স্ট্রিং রিটার্ন করা উচিত।
মনে রাখবেন, খালি আইডেন্টিফায়ার দিয়ে ফাংশনটি কল করা উচিত নয়, কারণ এমন আইডেন্টিফায়ার অকার্যকর।
যেকোনো স্পেস আন্ডারস্কোর দিয়ে প্রতিস্থাপন করতে clean ফাংশনটি ইমপ্লিমেন্ট করুন। এটি শুরু ও শেষে থাকা স্পেসের ক্ষেত্রেও প্রযোজ্য।
(clean "my Id")
;;=> "my___Id"
কন্ট্রোল ক্যারেক্টারকে বড় হাতের অক্ষরের স্ট্রিং "CTRL" দিয়ে প্রতিস্থাপন করতে clean ফাংশনটি পরিবর্তন করুন। কোনো ক্যারেক্টারের কোড '\u0000' থেকে '\u001F' পরিসরে অথবা '\u007F' থেকে '\u009F' পরিসরে থাকলে সেটিকে ISO কন্ট্রোল ক্যারেক্টার ধরা হয়।
(clean "my\u007FId")
;;=> "myCTRLId"
কেবাব-কেসকে ক্যামেল কেসে রূপান্তর করতে clean ফাংশনটি পরিবর্তন করুন।
(clean "à-ḃç")
;;=> "àḂç"
অক্ষর নয় এমন যেকোনো ক্যারেক্টার বাদ দিতে clean ফাংশনটি পরিবর্তন করুন।
মনে রাখবেন: আগের ধাপ থেকে আন্ডারস্কোরগুলো অবশ্যই সংরক্ষণ করতে হবে।
(clean "1😀2😀3😀")
;; => ""
'α' থেকে 'ω' পরিসরের যেকোনো গ্রিক অক্ষর বাদ দিতে clean ফাংশনটি পরিবর্তন করুন।
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Exercism-এ সাইন আপ করুন, Clojure ট্র্যাকের 12টি কনসেপ্ট105টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।