filter
, map
, এবং reduce
অপারেশনGroovy তে collections (যেমন List, Set, Map) এর সাথে কার্যকরী ফাংশনাল অপারেশনগুলির মধ্যে অন্যতম হল filter, map, এবং reduce। এগুলি ফাংশনাল প্রোগ্রামিং স্টাইলের অপারেশন, যা আপনাকে একটি কালেকশন বা ডেটার উপর বিভিন্ন ধরনের ম্যানিপুলেশন করতে সহায়ক। Groovy তে এই অপারেশনগুলো খুবই সহজ এবং শক্তিশালী, এবং কোডকে আরও সংক্ষিপ্ত, পরিষ্কার এবং কার্যকরী করে তোলে।
filter
অপারেশনfilter
অপারেশন একটি কালেকশন থেকে নির্দিষ্ট শর্ত পূর্ণকারী উপাদানগুলো নির্বাচন করতে ব্যবহৃত হয়। এটি একটি শর্ত (predicate) নিয়ে কাজ করে এবং যে উপাদানগুলি সেই শর্ত পূর্ণ করে, সেগুলো ফিরিয়ে দেয়। এটি মূলত একটি লম্বা তালিকা বা কালেকশন থেকে নির্বাচিত উপাদানগুলির একটি সাবসেট তৈরি করতে ব্যবহার হয়।
filter
উদাহরণ:def numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def evenNumbers = numbers.findAll { it % 2 == 0 } // শুধু even সংখ্যাগুলি ফিল্টার করা হবে
println evenNumbers // Output: [2, 4, 6, 8, 10]
এখানে findAll
একটি Groovy ফাংশন যা filter
অপারেশনের মতো কাজ করে এবং it % 2 == 0
শর্তের মাধ্যমে শুধুমাত্র even সংখ্যাগুলিকে নির্বাচন করা হচ্ছে।
map
অপারেশনmap
অপারেশন একটি কালেকশনের প্রতিটি উপাদানের উপর একটি নির্দিষ্ট ফাংশন প্রয়োগ করে এবং একটি নতুন কালেকশন তৈরি করে। এটি মূল কালেকশনটিকে পরিবর্তন না করে নতুন একটি কালেকশন প্রদান করে, যেখানে প্রতিটি উপাদান ম্যাপ করা হয়।
map
উদাহরণ:def numbers = [1, 2, 3, 4, 5]
def doubledNumbers = numbers.collect { it * 2 } // প্রতিটি উপাদানকে দ্বিগুণ করা হচ্ছে
println doubledNumbers // Output: [2, 4, 6, 8, 10]
এখানে collect
ফাংশনটি একটি map
অপারেশন হিসেবে কাজ করছে এবং প্রতিটি উপাদানকে দ্বিগুণ করে একটি নতুন কালেকশন তৈরি করছে।
reduce
অপারেশনreduce
অপারেশন একটি কালেকশনের সব উপাদানকে একত্রিত করে একটি একক ফলাফল প্রদান করে। এটি সাধারণত একাধিক উপাদানকে কোনো এক কার্যকরী সমীকরণে বা অ্যাকিউমুলেটর প্রক্রিয়ায় পরিণত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, যোগফল, গুণফল, ইত্যাদি।
reduce
উদাহরণ:def numbers = [1, 2, 3, 4, 5]
def sum = numbers.inject(0) { acc, num -> acc + num } // উপাদানগুলো যোগ করা হচ্ছে
println sum // Output: 15
এখানে inject
একটি reduce
অপারেশন হিসেবে কাজ করছে। প্রথমে 0
অ্যাকিউমুলেটর হিসেবে দেওয়া হয়েছে, তারপর প্রতিটি উপাদানকে যোগ করে একক ফলাফল পাওয়া যাচ্ছে (যোগফল)।
def numbers = [1, 2, 3, 4, 5]
def product = numbers.inject(1) { acc, num -> acc * num } // উপাদানগুলো গুণ করা হচ্ছে
println product // Output: 120
এখানে inject
ফাংশনটি গুণফল বের করছে, যেখানে প্রথমে 1
অ্যাকিউমুলেটর হিসেবে ব্যবহার করা হয়েছে এবং প্রতিটি উপাদানকে গুণ করে একক ফলাফল পাওয়া যাচ্ছে।
filter
, map
, এবং reduce
এর উপকারিতাmap
এবং filter
অপারেশনগুলোর মাধ্যমে আপনি মূল কালেকশনটি অপরিবর্তিত রেখে নতুন কালেকশন তৈরি করতে পারেন, যা কোডের পরিষ্কারতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।reduce
অপারেশন ব্যবহার করলে আপনি একাধিক উপাদানকে একত্রিত করতে পারেন, যা একযোগভাবে শক্তিশালী কোডিং স্টাইল গঠন করতে সহায়ক।Groovy তে filter
, map
, এবং reduce
অপারেশনগুলি শক্তিশালী ফাংশনাল প্রোগ্রামিং টুলস। filter
কালেকশন থেকে নির্দিষ্ট উপাদানগুলিকে বেছে নেয়ার জন্য ব্যবহৃত হয়, map
প্রতিটি উপাদানের উপর ফাংশন প্রয়োগ করতে এবং নতুন কালেকশন তৈরি করতে ব্যবহৃত হয়, এবং reduce
সব উপাদানকে একত্রিত করে একটি একক ফলাফল তৈরির জন্য ব্যবহৃত হয়। এগুলি কোডকে সংক্ষিপ্ত, পরিষ্কার এবং কার্যকরী করে তোলে, যা ডেভেলপারদের দ্রুত এবং দক্ষভাবে কাজ করতে সহায়তা করে।
common.read_more