A lambdafüggvény nem más, mint egy névtelen, egysoros, „egyszer használatos” függvény. Használata minden esetben elkerülhető bővebb kifejtéssel. A lambda a Python funkcionális oldalához tartozik, és a Lispből ered.
Szintaxisa: lambda <argumentumok>: kifejezés
Példák a lambdafüggény használatára:
- Faktoriális kiszámítása: Itt egyszerűen tömörebb lesz a rekurzív függvény definíciója, de nem lényegi a változás.
- Érettségi idegen nyelven, 2010 tavasz (Telek)#Második megoldás: Itt viszont segédfüggvényt spórol meg a 3. és a 4. feladatban is – a rendezési kulcs például egy függvény nevét várja paraméterként, és ilyen esetben juthat leghamarabb eszünkbe a lambda.
- Ebben a cikkben arra látunk példát, hogyan lehet a lambda és a filter kombinációjával egy igen egyszerű kóddal megvalósítani Eratoszthenész szitáját a prímszámok kigyűjtésére. (Bár ennek inkább a szűrés a lényeges eleme.)
Vajon hogy kerül ez az olykor meglehetősen tömör írásmódot lehetővé tevő eszköz egy olyan nyelvbe, amelynek a legfontosabb filozófiai alapvetése a programkód olvashatósága és tisztasága? Ha belegondolunk, nincs ellentmondás. Függvényt írni akkor szoktunk, ha egy összetettebb részfeladatot kell kiemelni az átláthatóság kedvéért, vagy ha ismétlődik egy feladat. Az a segédfüggvény, amelyik visszaadja egy telek területét (a listába ágyazott lista 3. elemét) vagy a „húsz méternél nem szélesebb” logikai értéket, egyik célt sem szolgálja; csak azért kellett definiálni, mert a key egy függvény nevét kéri. Magából a függvényből nem derül ki, mi a célja és hol hívjuk meg. Sokkal áttekinthetőbb lehet a kódunk, ha ezt az „eldobható” függvényt beépítjük a hívás helyére, és nem adunk neki külön nevet – ezt a célt szolgálja a lambdafüggvény.
Olvasmányok[]
- Lambda Forms
- A lambdafüggvények használata a rendezésben (keresd a sárga kiemeléseket)
- Elrettentő példák, hogy Pythonban is lehet olvashatatlan kódot gyártani
- Why can’t lambda forms contain statements?
- Small functions and the lambda expression
Az elméleti háttér a Wikipédiában: