পাইথনে ল্যাম্বডা ফাংশন
ধরুন আমাদের একটি ফাংশন func আছে,
যা প্যারামিটার হিসেবে একটি তালিকা এবং একটি
কলব্যাক নেয়। ফাংশনটি মূল তালিকার উপাদানগুলি থেকে একটি নতুন
তালিকা তৈরি করবে। এ
ক্ষেত্রে প্রতিটি উপাদানের উপর কলব্যাক প্রয়োগ করা হবে:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
এখন চলুন একটি ফাংশন square তৈরি করি,
যা তাকে দেওয়া সংখ্যাটিকে
বর্গ করবে:
def square(num):
return num ** 2
চলুন func এর প্যারামিটারে
একটি সংখ্যার তালিকা এবং কলব্যাক হিসেবে square ফাংশনটি পাঠাই:
print( func([1, 2, 3], square) )
কনসোলে সংখ্যাগুলির বর্গ নিয়ে গঠিত একটি নতুন তালিকা প্রদর্শিত হবে:
[1, 4, 9]
যাইহোক, ল্যাম্বডা-ফাংশন ব্যবহার করে এই কোডটি উল্লেখযোগ্যভাবে
সংক্ষিপ্ত করা যেতে পারে
- একটি বেনামী ফাংশন, যা
lambda কীওয়ার্ড দিয়ে কল করা হয় এবং
একটি লাইনে লেখা হয়। তাই শুধুমাত্র সেইসব ফাংশনকেই
ল্যাম্বডা-ফাংশনে পুনরায় লেখা যেতে পারে, যাদের কোড এক লাইন জুড়ে থাকে।
ল্যাম্বডা-ফাংশনের সিনট্যাক্সটি দেখতে এমন:
lambda ফাংশনের প্যারামিটার: ফাংশনের প্যারামিটার সহ অপারেশন
চলুন square ফাংশনটি
ল্যাম্বডা-ফাংশন ব্যবহার করে পুনরায় লিখি এবং এটিকে
func এর প্যারামিটারে পাঠাই:
print( func([1, 2, 3], lambda num: num ** 2) )
ল্যাম্বডা-ফাংশনকে একটি ভেরিয়েবলে লেখা যেতে পারে:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
নিচের কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
নিচের কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:
def func(num, clb1, clb2):
return (clb1(num), clb2(num))
def clb1(num):
return num + 1
def clb2(num):
return num - 1
print( func(2, clb1, clb2) )
নিচের কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))