প্রোলগে Strings এবং Character Lists ম্যানিপুলেশন গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষ করে যখন প্রোগ্রামিংয়ে টেক্সট, ডেটা প্রক্রিয়াকরণ এবং পাঠ্য বিশ্লেষণ (text parsing) এর কাজ করা হয়। প্রোলগে, Strings আসলে Character Lists (অথবা অ্যাটম) হিসাবে সংরক্ষিত হয় এবং তাদেরকে কার্যকরীভাবে ম্যানিপুলেট করা হয়।
এখানে আমরা প্রোলগে Strings এবং Character Lists ম্যানিপুলেট করার কিছু সাধারণ কৌশল এবং উদাহরণ দেখব।
Character Lists in Prolog
প্রোলগে Character Lists আসলে একটি লিস্ট যেখানে প্রতিটি উপাদান একটি **অক্ষর (character)**। প্রোলগে Character List বলতে সাধারণত একটি লিস্ট (যেমন, [a, b, c]) বোঝানো হয়, যেখানে প্রতিটি উপাদান একটি অক্ষর বা চরিত্র।
Character List তৈরি:
একটি সোজাসুজি character list তৈরি করা যেতে পারে:
?- List = [a, b, c].এখানে, List হবে [a, b, c], যা একটি Character List।
Strings in Prolog
Strings প্রোলগে আসলে Character Lists হিসেবেই কাজ করে। একটি string হল একটি তালিকা যার প্রতিটি উপাদান একটি চরিত্র (character), এবং এটি একটি এ্যাটম (atom) হিসাবে ধারণ করা হয়। যেমন, "hello" প্রোলগে একটি string হিসেবে [h, e, l, l, o] এর সমান।
String তৈরি:
?- String = "hello".এখানে, String হবে [h, e, l, l, o]।
Strings এবং Character Lists ম্যানিপুলেশন:
১. String Length বের করা:
আপনি string length বা character list length বের করতে পারেন length/2 predicate ব্যবহার করে:
?- length("hello", Length).আউটপুট:
Length = 5.এখানে, "hello" এর দৈর্ঘ্য ৫।
২. String এর প্রথম এবং শেষ অক্ষর বের করা:
আপনি একটি Character List বা String থেকে প্রথম এবং শেষ অক্ষর বের করতে পারেন।
প্রথম অক্ষর বের করা:
?- string_chars("hello", [Head|_]).আউটপুট:
Head = h.শেষ অক্ষর বের করা:
?- string_chars("hello", [_|Tail]), last(Tail, Last).আউটপুট:
Last = o.৩. String যোগ করা (Concatenation):
আপনি string গুলিকে concat বা যোগ করতে পারেন append/3 ব্যবহার করে:
?- append("hello", " world", Result).আউটপুট:
Result = "hello world".এখানে, "hello" এবং " world" যোগ হয়ে "hello world" হবে।
৪. String থেকে Character List বের করা:
আপনি একটি String থেকে Character List তৈরি করতে পারেন বা বিপরীত কাজ করতে পারেন।
String থেকে Character List তৈরি:
?- string_chars("hello", List).আউটপুট:
List = [h, e, l, l, o].৫. Character List থেকে String তৈরি:
একটি Character List থেকে আবার একটি String তৈরি করতে string_chars/2 ব্যবহার করা হয়।
?- string_chars(String, [h, e, l, l, o]).আউটপুট:
String = "hello".৬. String বা Character List এর মধ্যে সাবস্ট্রিং খোঁজা (Substring Search):
আপনি একটি substring খুঁজে বের করতে পারেন sub_string/5 ব্যবহার করে:
?- sub_string("hello world", 0, 5, _, SubStr).আউটপুট:
SubStr = "hello".এখানে, sub_string/5 প্রথম ৫টি অক্ষর "hello" কে আলাদা করে।
৭. Character List থেকে শব্দ বিভক্ত করা:
আপনি একটি character list বা string থেকে বিভিন্ন অংশ বিভক্ত করতে পারেন। উদাহরণস্বরূপ, একটি স্ট্রিং থেকে শব্দ বিভক্ত করতে split_string/4 ব্যবহার করা যেতে পারে:
?- split_string("hello world prolog", " ", "", List).আউটপুট:
List = ["hello", "world", "prolog"].এখানে, split_string/4 ফাংশনটি স্ট্রিংটি স্পেস দিয়ে বিভক্ত করেছে এবং ফলস্বরূপ একটি list of words তৈরি হয়েছে।
৮. String Replace করা:
একটি স্ট্রিংয়ে শব্দ প্রতিস্থাপন করতে replace/4 ব্যবহার করতে পারেন:
?- sub_string("hello world", Before, Length, After, "world").এটি "world" কে "hello" থেকে মুছে "world" এর অবস্থান বের করবে।
String এবং Character List এর মধ্যে পার্থক্য:
- String প্রোলগে Character List হিসেবে প্রতিনিধিত্ব করা হয়। একটি স্ট্রিং আসলে একটি
[h, e, l, l, o]টাইপের চরিত্রের লিস্ট। - Strings কে
" "(ডাবল কোট) দিয়ে ধারণ করা হয়, এবং Character Lists কে[ ](স্কোয়ার ব্র্যাকেট) দিয়ে।
সারসংক্ষেপ:
প্রোলগে Strings এবং Character Lists ম্যানিপুলেশন অনেক গুরুত্বপূর্ণ এবং প্রোগ্রামিংয়ের বিভিন্ন ক্ষেত্রে বিশেষভাবে টেক্সট প্রক্রিয়াকরণে ব্যবহৃত হয়। আপনি strings এবং character lists এর দৈর্ঘ্য বের করা, সংযোগ করা, সাবস্ট্রিং খুঁজে বের করা, এবং আরও অনেক কাজ করতে পারেন। প্রোলগের string_chars/2, append/3, sub_string/5, split_string/4 ইত্যাদি ফাংশন এবং অপারেটরগুলো ব্যবহার করে সহজে এই ম্যানিপুলেশনগুলো করা যায়।
Read more