פונקציית lambda
פונקציות מיועדות לשימוש חוזר בתוכנית, לעיתים מספר פעמים, או לבניית מבנים מורכבים יותר. אולם לעיתים אנו רוצים משהו לשימוש קצר וחד פעמי שנכתב במשפט אחד. הפונקציה גם נקראת פונקציה אנונימית משום שאין לה שם. למה זה טוב ?! ממציא התוכנה חושב היום שזה לא טוב למרות שזה חוסך שורות קוד, זה הופך את התוכנה לפחות קריאה וברורה אבל זה מסורתי והוא לא הצליח להוריד את זה מהגרסאות המתקדמות רק בגלל לחץ המשתמשים, זה מזכיר שם של ריקוד, אז נלמד את זה. עוד הערה לפני כן, בהמשך נלמד את הנושא של list comprehension שמאפשר ליצור מבנים מהירים שגם הוא מייתר במקרים רבים את ה- lambda אבל מסורות זו מסורת, סבבה?!
נכתוב תוכנית הסוכמת ערך של שני מספרים שאנו מצבים, עם פונקציה רגילה ועם lambda ולאחר מכן נסביר -
תוכנית עם פונקציה רגילה-
def sum(a,b):
return a+b print(sum(5,8)) >>> 13
תוכנית עם פונקציית lambda -
sum=lambda a,b : a+b
print(sum(5,8)) >>>13
בשני המקרים מתקבלת התוצאה 13 ואופן השימוש בפונקציה הוא זהה, אבל ב- lambda חסכנו שורה אחת של קוד. אנו רואים שלמבדה לוקחת את המשתנים מצד שמאל של הנקודתיים ומחזירה ערך בהתאם לפעולה הנדרשת בצד ימין של הנקודתיים, בלי גינוני נימוסין בלי return ובלי def בהתחלה.
תוכנית המחזירה פונקציה (lambda) -
def multifunc(n): return lambda x: x * n f=multifunc(10) print(f(5)) >>> 50
print(f(12)) >>> 120
התוכנית למעלה נקראת multifunc היא מאפשרת ייצור מהיר של פונקציה שתיקח את הערך של n ותוכל לקבל את המכפלה שלו בכל מספר שהמשתמש יבחר. לפונקציה שאנו מייצרים באופן הזה קראנו f והבסיס אותו היא מכפילה בכל פעם הוא 10 כך ש (f(5 נותן את הערך 50 ו- (f(12 את הערך 120.
מספיק עם הקשקוש הזה.