Collections: List, Vector, Set, এবং Map

Computer Programming - ক্লোজার (Clojure) ডেটা টাইপস এবং ভেরিয়েবল (Data Types and Variables in Clojure) |
207
207

ক্লোজার (Clojure) ভাষায় Collections গুরুত্বপূর্ণ ভূমিকা পালন করে এবং প্রোগ্রামিংয়ের প্রয়োজন অনুসারে বিভিন্ন ডেটা সংগঠিত ও ম্যানিপুলেট করার জন্য বিভিন্ন ধরণের সংগ্রহ বা Collections সরবরাহ করে। এই চারটি প্রধান Collection হল - List, Vector, Set, এবং Map। প্রতিটির নিজস্ব বৈশিষ্ট্য, সুবিধা, এবং ব্যবহারের উদ্দেশ্য রয়েছে।


১. List (লিস্ট)

List হলো একটি সিকোয়েন্স ডেটা কাঠামো যা সাধারণত ফাংশন কল বা রিকার্সিভ অপারেশনগুলির জন্য ব্যবহার করা হয়। ক্লোজারে List সাধারণত লিংকড লিস্ট আকারে থাকে, এবং প্রতিটি উপাদান তার পূর্ববর্তী উপাদানের সাথে সংযুক্ত থাকে।

  • বৈশিষ্ট্য: List অর্ডারড এবং ইমিউটেবল।
  • প্রসঙ্গ: দ্রুত প্রথম উপাদান যোগ করা সম্ভব হলেও শেষের দিকের অ্যাক্সেস ধীর।
  • সিনট্যাক্স: '() বা (list ...)

ব্যবহার উদাহরণ:

(def my-list '(1 2 3 4 5))

(first my-list) ; আউটপুট: 1
(rest my-list)  ; আউটপুট: (2 3 4 5)
(cons 0 my-list) ; আউটপুট: (0 1 2 3 4 5)

ব্যবহার: সাধারণত ক্রমবদ্ধ অপারেশন, স্ট্যাক বা কিউয়ের মতো স্ট্রাকচারে।


২. Vector (ভেক্টর)

Vector হলো একটি ইমিউটেবল এবং ইন্ডেক্সড ডেটা কাঠামো, যা দ্রুত অ্যাক্সেস এবং সংশোধনের জন্য উপযোগী। Vector-এ প্রতিটি আইটেমের অবস্থান একটি ইন্ডেক্স দ্বারা নির্ধারিত হয় এবং এটি অ্যারে-ভিত্তিক, ফলে ইনডেক্সের মাধ্যমে তাৎক্ষণিক অ্যাক্সেস সম্ভব।

  • বৈশিষ্ট্য: অর্ডারড, ইমিউটেবল, ইন্ডেক্সড।
  • প্রসঙ্গ: যে কোনো ইনডেক্স থেকে দ্রুত অ্যাক্সেসের জন্য আদর্শ।
  • সিনট্যাক্স: [] বা (vector ...)

ব্যবহার উদাহরণ:

(def my-vector [1 2 3 4 5])

(nth my-vector 1) ; আউটপুট: 2
(conj my-vector 6) ; আউটপুট: [1 2 3 4 5 6]
(count my-vector) ; আউটপুট: 5

ব্যবহার: সাধারণত এমন ক্ষেত্র যেখানে দ্রুত অ্যাক্সেস এবং সংশোধনের প্রয়োজন হয়।


৩. Set (সেট)

Set একটি ডেটা কাঠামো, যেখানে প্রতিটি মান একবারই উপস্থিত থাকতে পারে। Set-এর মানগুলো ইউনিক এবং এটি সাধারণত ডুপ্লিকেট সরাতে এবং মেম্বারশিপ যাচাইয়ের জন্য ব্যবহার করা হয়।

  • বৈশিষ্ট্য: অনন্য মান, অর্ডারহীন।
  • প্রসঙ্গ: দ্রুত মেম্বারশিপ যাচাইয়ের জন্য ব্যবহার।
  • সিনট্যাক্স: #{} বা (set ...)

ব্যবহার উদাহরণ:

(def my-set #{1 2 3 4 5})

(contains? my-set 3) ; আউটপুট: true
(conj my-set 6) ; আউটপুট: #{1 2 3 4 5 6}
(disj my-set 2) ; আউটপুট: #{1 3 4 5}

ব্যবহার: ডুপ্লিকেট সরানো এবং দ্রুত মেম্বারশিপ যাচাইয়ের জন্য।


৪. Map (ম্যাপ)

Map হলো একটি অ্যাসোসিয়েটিভ ডেটা কাঠামো যা key-value পেয়ার আকারে ডেটা সংরক্ষণ করে। ম্যাপ সাধারণত ডেটা অনুসন্ধান এবং অ্যাসোসিয়েটিভ ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

  • বৈশিষ্ট্য: কী-ভ্যালু পেয়ার, অ্যাসোসিয়েটিভ।
  • প্রসঙ্গ: দ্রুত মান অনুসন্ধানের জন্য উপযোগী।
  • সিনট্যাক্স: {} বা (hash-map ...)

ব্যবহার উদাহরণ:

(def my-map {:name "Alice" :age 30 :city "New York"})

(:name my-map) ; আউটপুট: "Alice"
(get my-map :age) ; আউটপুট: 30
(assoc my-map :country "USA") ; আউটপুট: {:name "Alice", :age 30, :city "New York", :country "USA"}
(dissoc my-map :city) ; আউটপুট: {:name "Alice", :age 30}

ব্যবহার: অ্যাসোসিয়েটিভ ডেটা মডেল এবং কী-ভিত্তিক ডেটা অ্যাক্সেসের জন্য।


সারসংক্ষেপ টেবিল

ডেটা কাঠামোবৈশিষ্ট্যসাধারণ ব্যবহার
Listঅর্ডারড, ইমিউটেবলক্রমবদ্ধ অপারেশন, স্ট্যাক বা কিউয়ের মতো
Vectorইমিউটেবল, ইন্ডেক্সডদ্রুত অ্যাক্সেস এবং সংশোধন
Setঅনন্য মানমেম্বারশিপ যাচাই এবং ডুপ্লিকেট সরানো
Mapকী-ভ্যালু পেয়ারঅ্যাসোসিয়েটিভ ডেটা সংরক্ষণ এবং অনুসন্ধান

এই চারটি Collection বা ডেটা কাঠামো ক্লোজারে বিভিন্ন পরিস্থিতিতে ডেটা সংগঠিতভাবে সংরক্ষণ, অ্যাক্সেস এবং ম্যানিপুলেশনের জন্য খুবই উপযোগী।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion