पायथन में लैम्बडा फ़ंक्शन
मान लीजिए कि हमारे पास एक फ़ंक्शन 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))