পাইথনে ল্যাম্বডা ফাংশন

ধরুন আমাদের একটি ফাংশন func আছে, যা প্যারামিটার হিসেবে একটি তালিকা এবং একটি কলব্যাক নেয়। ফাংশনটি মূল তালিকার উপাদানগুলি থেকে একটি নতুন তালিকা তৈরি করবে। এ ক্ষেত্রে প্রতিটি উপাদানের উপর কলব্যাক প্রয়োগ করা হবে:

pythondef func(lst, callback):
  res = []
  
  for el in lst:
    res.append(callback(el))
    
  return res

এখন চলুন একটি ফাংশন square তৈরি করি, যা তাকে দেওয়া সংখ্যাটিকে বর্গ করবে:

pythondef square(num):
  return num ** 2

চলুন func এর প্যারামিটারে একটি সংখ্যার তালিকা এবং কলব্যাক হিসেবে square ফাংশনটি পাঠাই:

pythonprint( func([1, 2, 3], square) )

কনসোলে সংখ্যাগুলির বর্গ নিয়ে গঠিত একটি নতুন তালিকা প্রদর্শিত হবে:

python[1, 4, 9]

যাইহোক, ল্যাম্বডা-ফাংশন ব্যবহার করে এই কোডটি উল্লেখযোগ্যভাবে সংক্ষিপ্ত করা যেতে পারে - একটি বেনামী ফাংশন, যা lambda কীওয়ার্ড দিয়ে কল করা হয় এবং একটি লাইনে লেখা হয়। তাই শুধুমাত্র সেইসব ফাংশনকেই ল্যাম্বডা-ফাংশনে পুনরায় লেখা যেতে পারে, যাদের কোড এক লাইন জুড়ে থাকে।

ল্যাম্বডা-ফাংশনের সিনট্যাক্সটি দেখতে এমন:

pythonlambda ফাংশনের প্যারামিটার: ফাংশনের প্যারামিটার সহ অপারেশন

চলুন square ফাংশনটি ল্যাম্বডা-ফাংশন ব্যবহার করে পুনরায় লিখি এবং এটিকে func এর প্যারামিটারে পাঠাই:

pythonprint( func([1, 2, 3], lambda num: num ** 2) )

ল্যাম্বডা-ফাংশনকে একটি ভেরিয়েবলে লেখা যেতে পারে:

pythonsquare = lambda num: num ** 2
print( func([1, 2, 3], square) )
Задание 1

নিচের কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:

pythondef func(num, clb):
  return clb(num)

def clb(num):
  return num + 1
  
print( func(2, clb) )
Задание 2

নিচের কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:

pythondef 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) )
Задание 3

নিচের কোডটি ল্যাম্বডা-ফাংশন দিয়ে পুনরায় লিখুন:

pythondef func(num1, num2, clb):
  res = clb(num1) + num2
  return res
  
def clb(num):
  return num ** 3
  
print(func(2, 6, clb))