List এবং Tuple এর মৌলিক ধারণা

Lists এবং Tuples (লিস্ট এবং টুপল) - হ্যাস্কেল (Haskell) - Computer Programming

351

Haskell এ List এবং Tuple এর মৌলিক ধারণা

Haskell এ List এবং Tuple হলো দুটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা ডেটা সংরক্ষণ এবং সংগঠনের জন্য ব্যবহৃত হয়। এই দুইটি ডেটা স্ট্রাকচারের নিজস্ব বৈশিষ্ট্য এবং ব্যবহার ক্ষেত্র রয়েছে।


List

List হলো Haskell এর একটি মৌলিক ডেটা স্ট্রাকচার, যা এক ধরনের সিকোয়েন্স বা ক্রমিক ডেটা রাখে। Haskell এ List হলো একটি হোমোজেনিয়াস ডেটা স্ট্রাকচার, অর্থাৎ এর মধ্যে থাকা সব উপাদানের টাইপ একই হতে হবে।

List এর বৈশিষ্ট্য:

  • একটি List তৈরি করতে [ ] ব্যবহার করা হয়।
  • List-এর প্রতিটি উপাদান একই টাইপের হতে হবে (যেমন সব Int বা সব String)।
  • List এর উপাদানগুলো ক্রমান্বয়ে থাকে এবং এদের অ্যাক্সেস করা বা পরিবর্তন করা সহজ।
  • List একটি ইমিউটেবল ডেটা স্ট্রাকচার, অর্থাৎ একবার তৈরি হলে এর মান পরিবর্তন করা যায় না।

উদাহরণ:

myList :: [Int]
myList = [1, 2, 3, 4, 5]

এখানে myList একটি Int টাইপের List, যা [1, 2, 3, 4, 5] উপাদানগুলো ধারণ করে।

List এর অপারেশন:

  1. Head: List এর প্রথম উপাদান রিটার্ন করে।

    head [1, 2, 3] -- আউটপুট: 1
  2. Tail: প্রথম উপাদান বাদ দিয়ে বাকি List রিটার্ন করে।

    tail [1, 2, 3] -- আউটপুট: [2, 3]
  3. Length: List এর দৈর্ঘ্য প্রদান করে।

    length [1, 2, 3] -- আউটপুট: 3
  4. Concatenate: দুটি List একত্রিত করতে ++ অপারেটর ব্যবহার করা হয়।

    [1, 2] ++ [3, 4] -- আউটপুট: [1, 2, 3, 4]
  5. Element Addition: : অপারেটর ব্যবহার করে নতুন উপাদান যুক্ত করা হয়।

    0 : [1, 2, 3] -- আউটপুট: [0, 1, 2, 3]

Tuple

Tuple হলো Haskell এর আরেকটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার, যা একাধিক মান একত্রে ধরে রাখতে ব্যবহার করা হয়। Tuple এর মধ্যে থাকা উপাদানগুলির টাইপ এক হতে হবে এমন কোন বাধ্যবাধকতা নেই, অর্থাৎ একটি Tuple হেটেরোজেনিয়াস ডেটা স্ট্রাকচার।

Tuple এর বৈশিষ্ট্য:

  • Tuple তৈরি করতে ( ) ব্যবহার করা হয়।
  • Tuple এর উপাদানগুলির টাইপ ভিন্ন হতে পারে (যেমন একটি Int এবং একটি String একসাথে রাখা যাবে)।
  • Tuple একটি নির্দিষ্ট আকারের ডেটা স্ট্রাকচার এবং এটির আকার পরিবর্তন করা যায় না।
  • Tuple সাধারণত ফিক্সড আকারের ডেটা ধারণ করতে ব্যবহৃত হয়।

উদাহরণ:

myTuple :: (Int, String, Bool)
myTuple = (1, "Hello", True)

এখানে myTuple একটি Tuple, যা একটি Int, একটি String, এবং একটি Bool ধারণ করে।

Tuple এর অপারেশন:

  1. fst: দুটি উপাদান বিশিষ্ট Tuple এর প্রথম উপাদান রিটার্ন করে।

    fst (1, "Hello") -- আউটপুট: 1
  2. snd: দুটি উপাদান বিশিষ্ট Tuple এর দ্বিতীয় উপাদান রিটার্ন করে।

    snd (1, "Hello") -- আউটপুট: "Hello"
  3. Accessing Elements: বৃহত্তর Tuple এর উপাদানগুলোতে সরাসরি fst বা snd এর মাধ্যমে অ্যাক্সেস করা যায় না, এজন্য pattern matching ব্যবহার করতে হয়।

    let (x, y, z) = (1, "Hello", True)
    -- x = 1, y = "Hello", z = True

পার্থক্য: List এবং Tuple

বৈশিষ্ট্যListTuple
টাইপহোমোজেনিয়াস (একই টাইপের উপাদান)হেটেরোজেনিয়াস (বিভিন্ন টাইপের উপাদান থাকতে পারে)
আকারপরিবর্তনযোগ্য আকার (dynamic size)নির্দিষ্ট আকার (fixed size)
সিনট্যাক্স[1, 2, 3](1, "Hello", True)
মিউটেবিলিটিইমিউটেবলইমিউটেবল
অ্যাপ্লিকেশনক্রমিক ডেটা স্টোর করতেনির্দিষ্ট আকারের ডেটা স্টোর করতে

উদাহরণ: List এবং Tuple একত্রে ব্যবহার

students :: [(String, Int)]
students = [("Alice", 20), ("Bob", 22), ("Charlie", 19)]

এখানে:

  • students একটি List যেখানে প্রতিটি উপাদান একটি Tuple হিসেবে সংজ্ঞায়িত করা হয়েছে।
  • প্রতিটি Tuple এর প্রথম উপাদান String এবং দ্বিতীয় উপাদান Int

উপসংহার

List এবং Tuple Haskell এর গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা ডেটা সংরক্ষণ এবং পরিচালনায় বিভিন্ন সুবিধা প্রদান করে। যেখানে List একই ধরনের ডেটার ক্রমিক সংগ্রহ সংরক্ষণে উপযোগী, সেখানে Tuple বিভিন্ন ধরনের ডেটার নির্দিষ্ট সংগ্রহ সংরক্ষণে কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...