LISP প্রোগ্রামিং ভাষায় formatted output এবং string handling গুরুত্বপূর্ণ ফিচার যা কোডের আউটপুট প্রদর্শন এবং স্ট্রিং (string) ডাটা ম্যানিপুলেশন কার্যক্রমে ব্যবহৃত হয়। এই দুটি প্রক্রিয়া প্রোগ্রামারকে স্ট্রিং তৈরি এবং প্রিন্ট করার জন্য আরও দক্ষতা প্রদান করে। নিচে formatted output এবং string handling এর ব্যবহার এবং তাদের বিভিন্ন ফাংশনগুলির সম্পর্কে বিস্তারিত আলোচনা করা হলো।
১. Formatted Output (format)
format ফাংশন LISP-এ স্ট্রিং আউটপুট ফরম্যাট করার জন্য ব্যবহৃত হয়। এটি বিশেষত আউটপুটে নমনীয়তা এবং কাস্টমাইজেশন প্রদান করতে ব্যবহৃত হয়, যেখানে প্রোগ্রামার আউটপুটের গঠন এবং স্টাইল নির্ধারণ করতে পারে।
format ফাংশনের গঠন:
(format destination format-string arguments)- destination: এটি আউটপুটের গন্তব্য নির্ধারণ করে। সাধারণত
tব্যবহার করা হয় যা আউটপুটকে কনসোলে প্রিন্ট করে। - format-string: এটি আউটপুটের কাঠামো বা টেমপ্লেট নির্দেশ করে।
- arguments: এগুলি হল আউটপুটের জন্য মান, যা format-string এ প্লেসহোল্ডার হিসেবে ব্যবহৃত হবে।
format এর উদাহরণ:
বেসিক আউটপুট:
(format t "Hello, ~A!" "World") ; আউটপুট: Hello, World!এখানে,
~Aহল একটি প্লেসহোল্ডার যা"World"স্ট্রিংকে সন্নিবেশ করে আউটপুটে প্রিন্ট করবে।নিউ লাইন ব্যবহার:
(format t "Name: ~A~%Age: ~A" "John" 30) ; আউটপুট: ; Name: John ; Age: 30এখানে,
~%একটি নতুন লাইন (newline) যোগ করে।ফরম্যাটেড আউটপুট (নির্দিষ্ট প্রস্থে টেক্সট):
(format t "~10A" "Hello") ; আউটপুট: " Hello"এখানে,
~10Aদিয়ে স্ট্রিংটির মোট প্রস্থ ১০ চিহ্নে সীমাবদ্ধ করা হয়েছে এবং বাকি স্থান স্পেস দিয়ে পূর্ণ হয়েছে।গাণিতিক ফরম্যাট:
(format t "Pi is approximately ~F" 3.14159) ; আউটপুট: Pi is approximately 3.141590এখানে,
~Fফ্লোটিং পয়েন্ট সংখ্যার জন্য ফরম্যাট ব্যবহার করা হয়।
২. String Handling (স্ট্রিং হ্যান্ডলিং)
String handling LISP-এ স্ট্রিং (একটি সিকোয়েন্স অব ক্যারেক্টার) তৈরি, ম্যানিপুলেশন এবং অ্যাক্সেস করার জন্য ব্যবহৃত হয়। LISP-এ স্ট্রিংস সাধারণত "double quotes" দিয়ে আবদ্ধ থাকে এবং এদের সাথে বিভিন্ন ফাংশন ব্যবহার করে বিভিন্ন ধরনের অপারেশন করা যায়।
স্ট্রিং তৈরি:
(setq my-string "Hello, World!") ; একটি স্ট্রিং তৈরিস্ট্রিং সম্পর্কিত কিছু ফাংশন:
স্ট্রিং দৈর্ঘ্য (Length of a string):
(length "Hello") ; আউটপুট: 5স্ট্রিংয়ে ক্যারেক্টার অ্যাক্সেস (Accessing characters in a string):
(aref "Hello" 1) ; আউটপুট: 101 (ASCII মান 'e' এর জন্য)এখানে,
arefফাংশনটি একটি স্ট্রিংয়ের নির্দিষ্ট ইনডেক্সে থাকা ক্যারেক্টার প্রদান করে।স্ট্রিং সংযোজন (String concatenation):
(concatenate 'string "Hello, " "World!") ; আউটপুট: "Hello, World!"এখানে,
concatenateফাংশনটি দুটি স্ট্রিং একত্রিত করে।স্ট্রিং কাটিং (Substring):
(subseq "Hello, World!" 0 5) ; আউটপুট: "Hello"এখানে,
subseqফাংশনটি একটি স্ট্রিংয়ের সাবস্ট্রিং বের করে দেয়।- স্ট্রিং রূপান্তর (String transformation):
স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর:
(string-upcase "hello") ; আউটপুট: "HELLO"স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর:
(string-downcase "HELLO") ; আউটপুট: "hello"
স্ট্রিং খোঁজা (Searching within a string):
(search "World" "Hello, World!") ; আউটপুট: 7এখানে,
searchফাংশনটি স্ট্রিং "Hello, World!" এর মধ্যে "World" শব্দটির অবস্থান (index) প্রদান করে।স্ট্রিং থেকে ক্যারেক্টার মুছে ফেলা (Removing characters from a string):
(remove #\o "Hello, World!") ; আউটপুট: "Hell, Wrld!"এখানে,
removeফাংশনটি স্ট্রিং থেকেoক্যারেক্টারগুলো মুছে ফেলবে।
Formatted Output এবং String Handling এর মধ্যে পার্থক্য:
| বৈশিষ্ট্য | Formatted Output | String Handling |
|---|---|---|
| উদ্দেশ্য | আউটপুটকে নির্দিষ্ট ফরম্যাটে তৈরি করা। | স্ট্রিং তৈরি, পরিবর্তন এবং প্রক্রিয়া করার জন্য ফাংশন। |
| ফাংশন | format, ~A, ~F, ~% ইত্যাদি | concatenate, subseq, string-upcase, search ইত্যাদি |
| উপকারিতা | কোডে আউটপুটে নির্দিষ্ট কাঠামো এবং স্টাইল নিয়ন্ত্রণ। | স্ট্রিংয়ের ভেতরে ম্যানিপুলেশন, সাবস্ট্রিং তৈরী এবং অনুসন্ধান। |
| ব্যবহার | আউটপুটের ফরম্যাট নির্ধারণ, বিশেষত প্রিন্ট করা আউটপুটের জন্য। | স্ট্রিং এর বিভিন্ন কার্যকলাপ যেমন পরিবর্তন, অ্যাক্সেস, ফিল্টার। |
সারসংক্ষেপ:
- Formatted output আপনাকে আউটপুট প্রদর্শন এবং স্টাইল কাস্টমাইজ করার জন্য ব্যবহৃত হয়, যেমন সংখ্যা, স্ট্রিং বা অন্যান্য ডাটা ফরম্যাটে আউটপুট তৈরি করা।
- String handling স্ট্রিং ডাটা তৈরি এবং প্রক্রিয়া করতে ব্যবহৃত হয়, যেমন স্ট্রিংয়ে পরিবর্তন, সাবস্ট্রিং তৈরি, ক্যারেক্টার খোঁজা, এবং স্ট্রিং সংযোজন।
এই দুটি ফিচার LISP প্রোগ্রামিং ভাষায় স্ট্রিং ম্যানিপুলেশন এবং আউটপুট কাস্টমাইজেশন সহজ করে তোলে, যা প্রোগ্রামিংয়ের অনেক ক্ষেত্রে কার্যকরী।
Read more