ল্যাম্বডা ফাংশন (Lambda Function) হলো Python-এ একটি সংক্ষিপ্ত, এক-লাইন ফাংশন যা কোনো নাম ছাড়াই তৈরি করা যায়। এটি সাধারণত ছোট ও সরল ফাংশন তৈরি করতে ব্যবহৃত হয়, যেখানে একটি নির্দিষ্ট কাজ বা এক্সপ্রেশন সম্পন্ন করতে কম কোডের প্রয়োজন হয়। ফাংশনাল প্রোগ্রামিংয়ে ল্যাম্বডা ফাংশনের ব্যবহার map, filter, এবং reduce এর মতো ফাংশনগুলোর সাথে কাজ করাকে আরও সহজ করে তোলে। নিচে ল্যাম্বডা ফাংশনের ব্যবহার এবং এর উপকারী দিকগুলো আলোচনা করা হলো।
ল্যাম্বডা ফাংশনের সাধারণ গঠন
lambda parameters: expression- parameters: ল্যাম্বডা ফাংশনের ইনপুট প্যারামিটার।
- expression: ফাংশনটি যেই এক্সপ্রেশন বা কাজটি সম্পন্ন করবে।
ল্যাম্বডা ফাংশন ব্যবহার করে ফাংশনাল প্রোগ্রামিংয়ের উদাহরণ
১. ম্যাপ (map) ফাংশনের সাথে ল্যাম্বডা ফাংশন
map ফাংশন একটি iterable-এর প্রতিটি উপাদানের উপর নির্দিষ্ট ফাংশন প্রয়োগ করে নতুন একটি iterable তৈরি করে। ল্যাম্বডা ফাংশন ব্যবহার করে map এর প্রতিটি উপাদানের উপর কার্যকর করা সহজ হয়।
উদাহরণ:
numbers = [1, 2, 3, 4, 5]
# প্রতিটি উপাদানকে দ্বিগুণ করা হচ্ছে
doubled = list(map(lambda x: x * 2, numbers))
print(doubled) # আউটপুট: [2, 4, 6, 8, 10]ব্যাখ্যা:
এখানে lambda x: x * 2 একটি ল্যাম্বডা ফাংশন, যা map এর প্রতিটি উপাদানের উপর প্রয়োগ করা হয়েছে এবং প্রতিটি উপাদানের দ্বিগুণ মানের একটি নতুন তালিকা তৈরি করেছে।
২. ফিল্টার (filter) ফাংশনের সাথে ল্যাম্বডা ফাংশন
filter ফাংশন একটি iterable-এর প্রতিটি উপাদানের উপর শর্ত প্রয়োগ করে কেবলমাত্র শর্ত পূরণকারী উপাদানগুলো রেখে নতুন iterable তৈরি করে। ল্যাম্বডা ফাংশন ব্যবহার করে filter এর শর্ত সহজে নির্ধারণ করা যায়।
উদাহরণ:
numbers = [1, 2, 3, 4, 5, 6]
# শুধু জোড় সংখ্যাগুলো রাখা হচ্ছে
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # আউটপুট: [2, 4, 6]ব্যাখ্যা:
এখানে lambda x: x % 2 == 0 ল্যাম্বডা ফাংশনটি একটি শর্ত হিসেবে কাজ করছে, যা কেবলমাত্র জোড় সংখ্যাগুলিকে True প্রদান করছে এবং সেই সংখ্যাগুলো নতুন তালিকায় যুক্ত হচ্ছে।
৩. রিডিউস (reduce) ফাংশনের সাথে ল্যাম্বডা ফাংশন
reduce ফাংশন ধারাবাহিকভাবে iterable-এর উপাদানগুলির উপর কার্যকরী ফাংশন প্রয়োগ করে একক মানে সংকুচিত করে। এটি সাধারণত দুটি উপাদান নিয়ে কাজ করে এবং তারপর ফলাফল এবং পরবর্তী উপাদান নিয়ে একই কাজ করে চলে।
উদাহরণ:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# সব উপাদানের যোগফল বের করা হচ্ছে
total_sum = reduce(lambda x, y: x + y, numbers)
print(total_sum) # আউটপুট: 15ব্যাখ্যা:
এখানে lambda x, y: x + y ল্যাম্বডা ফাংশনটি প্রথম দুটি উপাদান যোগ করে এবং এরপরের প্রতিটি উপাদানের সাথে সেই যোগফলটি যুক্ত করে চূড়ান্ত যোগফল বের করে।
ফাংশনাল প্রোগ্রামিংয়ে ল্যাম্বডা ফাংশনের সুবিধা
১. কোড সংক্ষিপ্ত করে: ল্যাম্বডা ফাংশন সংক্ষিপ্ত আকারে একটি কার্যকরী ফাংশন তৈরি করতে পারে, যা দীর্ঘ def ফাংশনের তুলনায় দ্রুত ও সহজে লেখা যায়।
২. পঠনযোগ্যতা বৃদ্ধি করে: যখন কোনো ফাংশন শুধু একটি নির্দিষ্ট কাজের জন্য প্রয়োজন হয় এবং তা সহজে বোঝা যায়, তখন ল্যাম্বডা ফাংশন কোডকে সংক্ষিপ্ত ও পাঠযোগ্য করে তোলে।
৩. উন্নত ফাংশনাল প্রোগ্রামিং: map, filter, এবং reduce এর মতো উচ্চ-অর্ডার ফাংশনগুলোর সাথে ল্যাম্বডা ফাংশন ব্যবহার করা যায়, যা ফাংশনাল প্রোগ্রামিংয়ে খুবই কার্যকর।
আরও কিছু উদাহরণ
তালিকার উপাদানগুলির ঘনক্ষেত্র বের করা
numbers = [1, 2, 3, 4, 5]
cubes = list(map(lambda x: x ** 3, numbers))
print(cubes) # আউটপুট: [1, 8, 27, 64, 125]অক্ষর সংখ্যা তিনের বেশি এমন শব্দ বাছাই করা
words = ["apple", "is", "good", "fruit"]
filtered_words = list(filter(lambda word: len(word) > 3, words))
print(filtered_words) # আউটপুট: ['apple', 'good', 'fruit']তালিকার বৃহত্তম সংখ্যাটি খুঁজে বের করা
numbers = [5, 8, 2, 7, 3]
max_number = reduce(lambda x, y: x if x > y else y, numbers)
print(max_number) # আউটপুট: 8সংক্ষেপে:
ল্যাম্বডা ফাংশন ব্যবহার করে map, filter, এবং reduce ফাংশনের কাজগুলো সহজে এবং দ্রুত সম্পন্ন করা যায়। এটি কোডকে সংক্ষিপ্ত, রিডেবল, এবং কার্যকর করে তোলে, যা ফাংশনাল প্রোগ্রামিংয়ের জটিল কাজগুলোকে সহজ করে দেয়।