Elixir: Lists এবং Tuples এর মৌলিক ধারণা
Lists এবং Tuples হল Elixir তে ব্যবহৃত দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। যদিও উভয়েই ডেটা সংরক্ষণ করে, তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। নিচে Lists এবং Tuples এর মৌলিক ধারণা এবং ব্যবহারের সম্পর্কে আলোচনা করা হলো।
1. Lists
Lists হল একটি অর্ডারড ডেটা স্ট্রাকচার যেখানে একাধিক উপাদান থাকে। Elixir তে Lists খুবই সাধারণ এবং শক্তিশালী ডেটা স্ট্রাকচার, যা উপাদানগুলির একটি সংগ্রহ (collection) হিসেবে কাজ করে। Lists তে উপাদানগুলো order (ক্রম) অনুসারে থাকে এবং এটি mutable নয়, অর্থাৎ একবার একটি লিস্ট তৈরি হলে তা পরিবর্তন করা সম্ভব নয়, তবে নতুন উপাদান যোগ করতে পারি।
List এর সিনট্যাক্স:
list = [1, 2, 3, 4]এখানে, [1, 2, 3, 4] একটি লিস্ট যেখানে ৪টি উপাদান আছে।
List এর বৈশিষ্ট্য:
- অর্ডারড ডেটা: Lists তে উপাদানগুলি order বা ক্রম অনুসারে থাকে।
- ডাইনামিক সাইজ: লিস্টের সাইজ ডাইনামিক, অর্থাৎ আপনি যত খুশি উপাদান যোগ করতে পারবেন।
হেড (head) এবং টেইল (tail): লিস্টের প্রথম উপাদানকে হেড এবং বাকি উপাদানগুলোকে টেইল বলে। Elixir তে লিস্টে হেড এবং টেইল আলাদা করা যায়।
[head | tail] = [1, 2, 3, 4] IO.puts(head) # আউটপুট হবে 1 IO.inspect(tail) # আউটপুট হবে [2, 3, 4]
List এর কিছু গুরুত্বপূর্ণ অপারেশন:
লিস্ট যোগ (Concatenation):
লিস্টের উপাদানগুলো যোগ করা যায়++অপারেটর দিয়ে:list1 = [1, 2] list2 = [3, 4] combined = list1 ++ list2 IO.inspect(combined) # আউটপুট হবে [1, 2, 3, 4]লিস্ট থেকে উপাদান মুছে ফেলা (Remove elements):
লিস্ট থেকে উপাদান সরানোর জন্য--অপারেটর ব্যবহার করা হয়:list = [1, 2, 3, 4] new_list = list -- [2] IO.inspect(new_list) # আউটপুট হবে [1, 3, 4]
2. Tuples
Tuples হল একটি অর্ডারড ডেটা স্ট্রাকচার, তবে লিস্টের তুলনায় এটি immutable (অপরিবর্তনীয়) এবং স্থির আকারের (fixed size) ডেটা স্ট্রাকচার। Tuples তে ডেটার উপাদানগুলো একটি নির্দিষ্ট ক্রমে সংরক্ষিত থাকে এবং এগুলো সাধারণত একত্রে কিছু সম্পর্কিত ডেটা রাখার জন্য ব্যবহৃত হয়। যেমন, একটি ত্রৈমাসিক রেটিং সিস্টেমে ব্যবহারকারী নাম, রেটিং এবং মন্তব্য একত্রে রাখতে Tuple ব্যবহার করা যেতে পারে।
Tuple এর সিনট্যাক্স:
tuple = {1, 2, 3, 4}এখানে, {1, 2, 3, 4} একটি Tuple যেখানে ৪টি উপাদান আছে।
Tuple এর বৈশিষ্ট্য:
- অর্ডারড ডেটা: Tuples তে উপাদানগুলি ক্রম অনুসারে থাকে, অর্থাৎ সেগুলির অবস্থান গুরুত্বপূর্ণ।
- immutable: একবার Tuple তৈরি হয়ে গেলে, তার মধ্যে কোনো উপাদান পরিবর্তন করা সম্ভব নয়।
- ফিক্সড সাইজ: Tuples এর আকার বা সাইজ নির্দিষ্ট থাকে। একবার Tuple তৈরি হয়ে গেলে, তার মধ্যে উপাদানের সংখ্যা পরিবর্তন করা যাবে না।
Tuple এর কিছু গুরুত্বপূর্ণ অপারেশন:
Tuples তৈরি এবং অ্যাক্সেস:
Tuple তৈরি করা হয়{}দিয়ে এবং উপাদানগুলোকে ইনডেক্সের মাধ্যমে অ্যাক্সেস করা যায়। তবে, Elixir তে Tuple-এর উপাদান সরাসরি ইনডেক্স করে অ্যাক্সেস করা যায় না, তবে আপনিelem/2ফাংশন ব্যবহার করে কোনো নির্দিষ্ট ইনডেক্সের মান পেতে পারেন।tuple = {1, 2, 3, 4} IO.puts(elem(tuple, 2)) # আউটপুট হবে 3Tuples এর আকার (Size):
tuple_size/1ফাংশন ব্যবহার করে একটি Tuple এর আকার পাওয়া যায়।tuple = {1, 2, 3, 4} IO.puts(tuple_size(tuple)) # আউটপুট হবে 4
Lists এবং Tuples এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Lists | Tuples |
|---|---|---|
| সাইজ | ডাইনামিক সাইজ, যেকোনো সময় পরিবর্তন করা যায় | ফিক্সড সাইজ, একবার তৈরি হলে পরিবর্তন করা যায় না |
| কনটেইনার টাইপ | হালকা (lightweight) | ভারী (heavier) |
| অ্যাক্সেস টাইপ | `head | tail` পদ্ধতিতে অ্যাক্সেস করা যায় |
| ব্যবহার | অনেক উপাদান একত্রে রাখার জন্য | সাধারণত একাধিক সম্পর্কিত মান একত্রে রাখার জন্য |
| পারফরম্যান্স | অধিক উপাদান হলে পারফরম্যান্স কিছুটা কম হতে পারে | ছোট আকারের ডেটা দ্রুত অ্যাক্সেস করা যায় |
সারসংক্ষেপ
- Lists: একটি ডাইনামিক এবং অর্ডারড ডেটা স্ট্রাকচার যা অনেক উপাদান ধারণ করতে সক্ষম। এটি
head | tailপদ্ধতিতে উপাদান অ্যাক্সেস এবং পরিবর্তন করতে সাহায্য করে। - Tuples: একটি অর্ডারড এবং immutable ডেটা স্ট্রাকচার যার আকার নির্দিষ্ট থাকে এবং এটি সাধারণত সম্পর্কিত ডেটা একত্রে রাখার জন্য ব্যবহৃত হয়।
Elixir তে Lists এবং Tuples উভয়েই গুরুত্বপূর্ণ ডেটা স্ট্রাকচার এবং এগুলি আলাদা আলাদা পরিস্থিতিতে ব্যবহৃত হয়। Lists বেশি উপাদান সংরক্ষণের জন্য উপযুক্ত, আর Tuples বেশি নির্দিষ্ট এবং কম উপাদান সংরক্ষণের জন্য উপযুক্ত।
Read more