স্কালাতে, map, filter, এবং flatMap হল কিছু গুরুত্বপূর্ণ হাই-অর্ডার ফাংশন যা কালেকশনগুলির উপর বিভিন্ন অপারেশন করতে ব্যবহৃত হয়। এই ফাংশনগুলো কার্যকরী এবং ফাংশনাল প্রোগ্রামিংয়ের মূল উপাদান, যা সহজে এবং কার্যকরীভাবে ডেটা প্রক্রিয়া করতে সহায়ক।
1. map ফাংশন
map একটি হাই-অর্ডার ফাংশন যা একটি ফাংশন প্রতিটি উপাদানে প্রয়োগ করে এবং একটি নতুন কালেকশন তৈরি করে। এটি একটি কালেকশনের প্রতিটি উপাদানকে অন্য কিছুতে রূপান্তর করে।
ব্যবহার:
val numbers = List(1, 2, 3, 4, 5)
val doubledNumbers = numbers.map(x => x * 2)
println(doubledNumbers) // List(2, 4, 6, 8, 10)এখানে, map ফাংশন প্রতিটি সংখ্যাকে দ্বিগুণ করে একটি নতুন List তৈরি করেছে।
আরো উদাহরণ:
val names = List("Alice", "Bob", "Charlie")
val uppercaseNames = names.map(name => name.toUpperCase)
println(uppercaseNames) // List(ALICE, BOB, CHARLIE)এখানে, map ফাংশনটি প্রতিটি নামকে বড় হাতের অক্ষরে রূপান্তর করেছে।
2. filter ফাংশন
filter ফাংশনটি একটি শর্তবলীকে প্রয়োগ করে কালেকশনের শুধু সেই উপাদানগুলো রাখে যা শর্ত পূর্ণ করে। এটি একটি নতুন কালেকশন ফেরত দেয় যেটিতে কেবলমাত্র সেই উপাদানগুলো থাকবে যা শর্ত অনুযায়ী মেলে।
ব্যবহার:
val numbers = List(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter(x => x % 2 == 0)
println(evenNumbers) // List(2, 4)এখানে, filter ফাংশনটি শুধুমাত্র জোড়া সংখ্যাগুলোকে বেছে নিয়েছে এবং একটি নতুন List তৈরি করেছে।
আরো উদাহরণ:
val names = List("Alice", "Bob", "Charlie", "David")
val longNames = names.filter(name => name.length > 3)
println(longNames) // List(Alice, Charlie, David)এখানে, filter ফাংশনটি সেই নামগুলো বেছে নিয়েছে যেগুলোর দৈর্ঘ্য ৩ এর বেশি।
3. flatMap ফাংশন
flatMap ফাংশনটি map এবং flatten এর সংমিশ্রণ। এটি একটি ফাংশন প্রয়োগ করে একটি নতুন কালেকশন তৈরি করে এবং তারপর সেই কালেকশনগুলিকে একত্রিত করে একটি একক কালেকশন হিসেবে ফিরিয়ে দেয়। flatMap সাধারণত যখন একটি ফাংশনকে কল করার পর একটি নতুন কালেকশন তৈরি হয় এবং সেই কালেকশনগুলিকে একত্রিত করতে হয়, তখন ব্যবহার করা হয়।
ব্যবহার:
val numbers = List(1, 2, 3)
val result = numbers.flatMap(x => List(x, x * 2))
println(result) // List(1, 2, 2, 4, 3, 6)এখানে, flatMap প্রথমে প্রতিটি সংখ্যা থেকে দুটি মান (নিজেই এবং তার দ্বিগুণ) তৈরি করে এবং পরে সেই মানগুলিকে একত্রিত করে একটি একক List তৈরি করেছে।
আরো উদাহরণ:
val sentences = List("hello world", "how are you")
val words = sentences.flatMap(sentence => sentence.split(" "))
println(words) // List(hello, world, how, are, you)এখানে, flatMap ফাংশনটি একটি বাক্যকে শব্দে ভাগ করেছে এবং সেই শব্দগুলিকে একত্রিত করে একটি নতুন List তৈরি করেছে।
সারাংশ
- map: এটি একটি কালেকশনের প্রতিটি উপাদানে একটি ফাংশন প্রয়োগ করে এবং একটি নতুন কালেকশন তৈরি করে।
- filter: এটি একটি শর্ত প্রয়োগ করে এবং শুধুমাত্র সেই উপাদানগুলো রাখে যা শর্ত পূর্ণ করে।
- flatMap: এটি একটি ফাংশন প্রয়োগ করে, যেটি একটি নতুন কালেকশন তৈরি করে এবং সেই কালেকশনগুলিকে একত্রিত করে একটি একক কালেকশন হিসেবে ফিরিয়ে দেয়।
এই ফাংশনগুলো ফাংশনাল প্রোগ্রামিংয়ের মূল উপাদান এবং কালেকশন প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকরী টুলস।
Read more