Welkom terug.
Laten we het hebben over iets waar ik echt van hou, en het heet LAMDA.
Expressie.
En LAMDA is eigenlijk een computersysteem dat echt compatibel is met dit idee van functioneel programmeren. Lambda-expressies
in Python zijn eenmalige anonieme functies die je niet meer dan één keer nodig hebt.
Wat betekent dat?
Nou, lambda-expressies zijn echt heel handig als je ze gebruikt voor functies die je maar één keer
gebruikt.
Weet je nog hoe we het hadden over functies die nuttig zijn omdat we ze kunnen definiëren en deze functies
dan steeds opnieuw kunnen gebruiken en ons zo kunnen redden van het kopiëren en plakken van code?
Welnu, lambda-functies zijn voor die gelegenheden waar we een functie hebben, maar we hoeven deze maar één keer te
gebruiken.
En dan is het tweede deel dat er anonieme functies zijn.
Dat komt omdat we ze maar één keer gebruiken.
We hoeven er geen naam voor te hebben, want ik bedoel, we hoeven ze niet echt ergens op onze machines op
te slaan.
Ik wil het gewoon een keer gebruiken.
Gewoon uitvoeren en dan ben ik er klaar mee.
Gooi het maar weg.
Dus hoe ziet een lamda-functie eruit, een lamda-functie ziet er zo uit, we zeggen lamda in Python.
Laat me hier een beetje ruimte toevoegen, zodat we het kunnen zien.
We zeggen Lamda en je kunt zien dat het blauw is gemarkeerd en dan ga ik een parameter zeggen
die deze functie gaat krijgen en dan een Callon en dan een soort functie hier.
En de parameter.
Of in plaats van functie, zal het een soort manipulatie zijn die we doen.
Dus laten we zeggen actie die we willen ondernemen op een parameter.
Oké, dit ziet er nog steeds verwarrend uit, dus laten we proberen het te implementeren in onze functies die we
hebben gemaakt.
Dus laten we zeggen dat vermenigvuldigen met twee een van die dingen is die we maar één keer gaan gebruiken.
Ik wil mijn lijst maar met twee vermenigvuldigen en dan ben ik er klaar mee.
Ik hoef het niet in het geheugen op te slaan, het is slechts een extra stukje code.
Ik heb dit niet nodig.
Hoe kunnen we het doen?
Laten we zeggen dat we de kaartfunctie hier hebben en laten we er een lijst van maken.
En voor nu ga ik dit gewoon minimaliseren, dus we concentreren ons alleen op vermenigvuldigen met twee en hier gaan
we terug naar vermenigvuldigen met twee.
Weet je nog hoe we het eerder hadden?
Mijn lijst, en we hebben de derde parameter niet zomaar nodig met een lambda-functie, ik kan zeggen, hey, ik hoef
geen hele nieuwe functie te maken.
Ik ga het maar één keer gebruiken.
Laten we dit gewoon helemaal verwijderen.
En in plaats van vermenigvuldigen met twee te gebruiken, ga ik lambda zeggen.
En hier ga ik je de parameter geven, welke parameter ga ik ontvangen?
Nou, ik ga een item van mijn lijst ontvangen en dan hier, wat willen we met mijn lijst doen?
Nou, ik wil het met twee vermenigvuldigen.
Oké, zou dit kunnen werken?
Laten we het proberen.
Ik ga rennen.
Wauw, heb je dat gezien?
Ik heb vermenigvuldigd met twee niet eens gebruikt, ik kan het eigenlijk gewoon verwijderen.
En als ik op uitvoeren klik.
Alles werkt nog.
Waarom onthoud dit, lambda-expressies zijn eenmalige anonieme functies, er is geen naam aan deze functie
gekoppeld.
Dit is de functie hier.
Dat u niet meer dan één keer hoeft uit te voeren, dus als de interpreter deze regel code eenmaal uitvoert, herinnert hij dit niet
meer.
Het vergeet het gewoon.
Maar het voert de actie voor ons uit.
In ons geval zeggen we, hé, ik wil een lambda-expressie maken.
Ik neem een item van mijn lijst.
En dan ga ik die itemtijden ook vermenigvuldigen, en dit geeft het automatisch weer terug, de
volgorde die we doen is LAMDA.
Dan.
We geven het de Paran.
Colin, en dan de actie die we willen ondernemen in onze zaak, Elby Perram, en welke actie we ook
willen doen, zoals.
Dus in ons geval Eitam maal twee en dit keert automatisch terug.
Hoe cool is dat?
Dit is echt een leuke functie van Python om je code echt mooi en schoon te houden en niet rommelig met
al deze functies.
En andere talen hebben misschien geen lambda's, maar ze worden soms ook wel anonieme functies genoemd, iets dat
we hebben besproken waarom ze anoniem zijn.
Het zijn net normale functies en gedragen zich zelfs zo, maar we gebruiken ze maar één keer en ze hebben er geen, maar
je kunt hier zien dat het de zaken een beetje schoner maakt.
Wat als we nu proberen te filteren met een lamda-functie?
Nou, als je wilt, kun je een video plaatsen en het zelf proberen, maar het zou vrij eenvoudig moeten zijn, toch?
Als ik een filter doe, kan ik lamda doen.
Artikel en dan artikel.
Kopieer dit maar.
Dus de actie die we op het item willen ondernemen, is dit.
En als ik het run.
Nogmaals, het werkt, hoe fijn is dat die functie ook niet meer nodig is.
Heel, heel leuk.
Hoe zit het met verminderen?
Kunnen we verminderen met LAMDA?
Natuurlijk waarom niet?
Laten we zeggen dat we hier zullen zeggen verminderen.
We gaan de lijst hier verwijderen omdat we slechts één waarde produceren.
Ik ga LAMDA zeggen.
Item, onthoud, reduce accepteert twee parameters, de accumulator en dan het item, dus ik kan het gewoon aan parameters zoals
deze geven en dan zeggen, wat willen we doen?
Nou, ik wil gewoon een accumulator toevoegen aan het item.
Dus als ik mijn lijst hier zo doe en ik klik op uitvoeren.
Moet je dat zien.
Dat werkt ook.
Hoe cool is dat?
Nogmaals, we hebben de accumulator niet langer nodig, en nu hebben we slechts één regelfuncties die ik
gewoon kan uitvoeren en de lijst onmiddellijk kan verkleinen.
Heel erg cool.
We gaan lambda's een beetje meer verkennen, vooral in het begripsgedeelte van de
cursus.
Dus maak je geen zorgen als je ze nog steeds niet voor 100 procent gebruikt, we zullen later in de cursus meer
use-cases hebben en waarom ze nuttig zijn.
Maar lambda-expressies die ik echt heel erg leuk vind, ze maken je code heel, heel klein.
Ze maken de code echter een beetje minder leesbaar.
Het is dus een afweging waarbij je heel slim kunt worden met lambda-expressies, maar je code echt verwarrend maakt voor
anderen, dus je wilt wel voorzichtig zijn.
Voor nu zijn we klaar.
Ik zie je in de volgende video door.