czy uzywac lambdy zawsze zamiast funkcji bo są krotsze? czy służą tylko do skracania zapisu funkcji?
„Zawsze” to bardzo mocne słowo… Jak używasz jakiejś funkcji wiele razy, w wielu oddalonych od siebie miejscach w programie — albo chociaż silnie podejrzewasz, że możesz, to „pełny” zapis funkcyjny będzie zapewne wygodniejszy/czytelniejszy, niż przypisywanie lambdy do zmiennej.
I przeciwnie, jak jakąś funkcję używasz raz i fajrant — np. w parametrze jakiejś innej funkcji — to wtedy lambda jak znalazł.
Lambdy to funkcje anonimowe tak w skrócie. Głównie używa się ich jako wsady do innych funkcji np agregujących, gdzie zależy nam jedynie na wyrażeniu. Skracamy kod i zwiększamy czytelność.
W każdym innym przypadku lepiej stworzyć zwykłą funkcję, bo jest czytelniej.
Lambd używa się coraz rzadziej tak btw. Chociażby z pójścia do lamusa takich metod jak map
, czy filter
, które wypchało comprehension. Use casy dla lambd to głównie funkcje z dedykowanych libek, czy frameworków (np pyspark).