map
, filter
, এবং reduce
(Clojure)ক্লোজার (Clojure) প্রোগ্রামিং ভাষায় সিকোয়েন্স ফাংশনগুলো খুবই শক্তিশালী এবং তা ডেটা পরিচালনার জন্য কার্যকরী। এর মধ্যে তিনটি গুরুত্বপূর্ণ ফাংশন হলো map
, filter
, এবং reduce
। এগুলো ফাংশনাল প্রোগ্রামিংয়ে সাধারণত ব্যবহৃত হয় এবং সংগ্রহ (collection) থেকে তথ্য প্রক্রিয়া করতে সাহায্য করে।
map
: সংগ্রহের উপাদানগুলো রূপান্তর করাmap
ফাংশনটি একটি নির্দিষ্ট ফাংশন প্রতিটি উপাদানের ওপর প্রয়োগ করে এবং একটি নতুন সংগ্রহ (যেমন: লিস্ট, ভেক্টর) প্রদান করে, যেখানে প্রতিটি উপাদান প্রক্রিয়া করা হয়।
(map function collection)
map
ব্যবহার(def numbers [1 2 3 4 5])
; প্রতিটি সংখ্যাকে ২ দিয়ে গুণ করা
(def doubled (map #(* 2 %) numbers))
(doubled) ; আউটপুট: (2 4 6 8 10)
এখানে, #(* 2 %)
একটি অ্যনোনিমাস ফাংশন যা প্রতিটি উপাদানকে ২ দিয়ে গুণ করে। নতুন সিকোয়েন্সটি হলো (2 4 6 8 10)
।
filter
: শর্তানুযায়ী উপাদান নির্বাচন করাfilter
ফাংশনটি একটি শর্ত (predicate) ব্যবহার করে একটি সংগ্রহের উপাদানগুলো থেকে শুধু সেই উপাদানগুলো নির্বাচন করে যেগুলো শর্ত পূরণ করে।
(filter predicate collection)
filter
ব্যবহার(def numbers [1 2 3 4 5 6])
; শুধুমাত্র যেগুলি সোজা সংখ্যা (even) তা বের করা
(def even-numbers (filter even? numbers))
(even-numbers) ; আউটপুট: (2 4 6)
এখানে, even?
ফাংশনটি শর্ত হিসেবে ব্যবহৃত হচ্ছে, যার মাধ্যমে শুধুমাত্র সোজা (even) সংখ্যাগুলো বের করা হয়েছে।
reduce
: উপাদানগুলোর উপর একটি একক মান অর্জন করাreduce
ফাংশনটি একটি সংগ্রহের উপাদানগুলোকে একটি একক মানে (যেমন: যোগফল, গুণফল, ইত্যাদি) পরিণত করতে ব্যবহৃত হয়। এটি একটি একক রেজাল্ট তৈরি করতে দুটি উপাদানকে একসাথে প্রক্রিয়া করে এবং তা পরবর্তী উপাদানের সঙ্গে চালিয়ে যায়।
(reduce function collection)
reduce
ব্যবহার(def numbers [1 2 3 4 5])
; সব সংখ্যার যোগফল বের করা
(def sum (reduce + numbers))
(sum) ; আউটপুট: 15
এখানে, +
ফাংশনটি সমস্ত সংখ্যার উপর প্রয়োগ করা হয়েছে এবং সেগুলোর যোগফল ১৫ বের করা হয়েছে।
ফাংশন | কাজ | উদাহরণ |
---|---|---|
map | প্রতিটি উপাদানের উপর একটি ফাংশন প্রয়োগ করে একটি নতুন সংগ্রহ তৈরি করা | map #(* 2 %) numbers |
filter | একটি শর্তের ভিত্তিতে উপাদানগুলো নির্বাচন করা | filter even? numbers |
reduce | সমস্ত উপাদানগুলো একটি একক মানে রূপান্তর করা | reduce + numbers |
এই ফাংশনগুলো ক্লোজারে একটি শক্তিশালী সরঞ্জাম হিসেবে কাজ করে, যা সংগ্রহের উপাদানগুলোকে রূপান্তর, ফিল্টার এবং কম্পাইল করার জন্য খুবই কার্যকর।
common.read_more