Tekrar hoş geldiniz.
Gerçekten çok sevdiğim bir şeyden bahsedelim ve buna Lambda İfadeleri deniyor.
Ve Lambda aslında bu fonksiyonel programlama fikriyle gerçekten uyumlu bir bilgisayar bilimi terimidir.
Gördüğünüz gibi, Python'daki lambda ifadeleri, bir kereden fazla ihtiyaç duymadığınız tek seferlik anonim fonksiyonlardır.
Bu ne anlama geliyor?
Lambda ifadeleri, yalnızca bir kez kullanacağınız işlevler için kullandığınızda gerçekten çok kullanışlıdır.
Fonksiyonların yararlı olduğundan bahsettiğimizi hatırlayın, çünkü onları tanımlayabilir ve daha sonra bu fonksiyonları
tekrar tekrar kullanabilir ve böylece bizi kodu kopyalayıp yapıştırmaktan kurtarabiliriz.
Lambda fonksiyonları, bir fonksiyona sahip olduğumuz ancak onu yalnızca bir kez kullanmamız gereken durumlar
içindir.
İkinci kısım ise bunların anonim fonksiyonlar olmasıdır.
Çünkü onları sadece bir kez kullanıyoruz.
Bunlara bir isim vermemize gerek yok çünkü bunları makinelerimizde herhangi bir yerde saklamamız
gerekmiyor.
Sadece bir kez kullanmak istiyorum.
Sadece çalıştırıyorum ve sonra işim bitiyor.
At gitsin.
Peki bir lambda fonksiyonu nasıl görünür?
Bir lambda işlevi şuna benzer.
Python'da lambda deriz.
Görebilmemiz için buraya biraz boşluk eklememe izin verin.
Lambda diyoruz ve mavi renkle vurgulandığını görebilirsiniz.
Ve sonra bu fonksiyonun alacağı bir parametre söyleyeceğim ve sonra iki nokta üst üste ve sonra
burada bir tür fonksiyon.
Ve parametre.
Ya da işlev yerine, yaptığımız bir tür manipülasyon olacak.
Diyelim ki gerçekleştirmek istediğimiz bir eylem var.
Bir parametre üzerinde.
Pekala, bu hala kafa karıştırıcı görünüyor, bu yüzden bunu oluşturduğumuz fonksiyonlarımızda uygulamaya
çalışalım.
Diyelim ki iki ile çarpmak sadece bir kez kullanacağımız şeylerden biri.
Sadece ikiyle çarpmak istiyorum.
Bu benim listem ve sonra işim bitiyor.
Hafızaya kaydetmeme gerek yok.
Bu sadece fazladan bir kod parçası.
Buna ihtiyacım yok.
Bunu nasıl yapabiliriz?
Diyelim ki burada harita fonksiyonumuz var ve onu bir listeye dönüştürelim.
Ve şimdilik bunları en aza indireceğim.
Bu yüzden sadece iki ile çarpma işlemine odaklanıyoruz.
Ve burada ikiyle çarpma işlemine geri dönelim.
Daha önce nasıl yaptığımızı hatırla.
Benim listem ve bu şekilde üçüncü parametreye ihtiyacımız yok.
Şimdi bir lambda fonksiyonu ile şunu söyleyebilirim: Hey, tamamen yeni bir fonksiyon yaratmama gerek yok, bunu sadece
bir kez kullanacağım.
Bunu tamamen kaldıralım.
Ve iki ile çarpmak yerine lambda diyeceğim.
Ve burada ona parametreyi vereceğim.
Hangi parametreyi alacağım?
Listemden bir parça alacağım.
Ve sonra burada, listemde ne yapmak istiyoruz?
İkiyle çarpmak istiyorum.
Tamam.
Bu işe yarayabilir mi?
Bir deneyelim.
Ben kaçacağım.
Vay be.
Bunu gördün mü?
İki ile çarpmayı bile kullanmadım.
Aslına bakarsanız, silebilirim.
Çalıştır'a tıkladığımda ise her şey çalışmaya devam ediyor.
Şimdi.
Neden böyle oldu?
Lambda ifadelerinin tek seferlik anonim fonksiyonlar olduğunu unutmayın.
Bu işleve bağlı bir isim yoktur.
İşlev tam burada.
Bir kereden fazla koşmanıza gerek olmadığını.
Yani yorumlayıcı bu kod satırını çalıştırdığında, bunu hatırlamaz.
Sadece unutur.
Ama bizim için eylemi gerçekleştiriyor.
Bizim durumumuzda, "Hey, bir lambda ifadesi oluşturmak istiyorum" diyoruz.
Listemden bir madde alacağım.
Ve sonra bu öğeyi ikiyle çarpacağım ve bu otomatik olarak tekrar döndürür.
O zaman yapacağımız şey lambda'dır.
Ona arabayı, Colin'i ve ardından gerçekleştirmek istediğimiz eylemi veriyoruz.
Bizim durumumuzda, çocuk arabası olacak.
Ve yapmak istediğimiz her türlü eylemi.
Sevdim.
Yani bizim durumumuzda, öğe iki ile çarpılır ve bu otomatik olarak döner.
Ne kadar havalı değil mi?
Bu, kodunuzu gerçekten güzel ve temiz tutmak ve tüm bu işlevlerle karıştırmamak için Python'un gerçekten güzel
bir özelliğidir.
Ve diğer dillerde lambda olmayabilir, ancak bazen anonim işlevler olarak adlandırılırlar.
Yine, neden anonim olduklarını tartıştığımız bir konu.
Tıpkı normal fonksiyonlar gibidirler ve hatta onlar gibi davranırlar.
Ama onları sadece bir kez kullanıyoruz ve bir isimleri yok.
Ancak burada işleri biraz daha temiz hale getirdiğini görebilirsiniz.
Şimdi bir lambda fonksiyonu ile filtre yapmaya çalışırsak ne olur?
İsterseniz videoyu duraklatabilir ve kendiniz deneyebilirsiniz.
Ama oldukça kolay olmalı, değil mi?
Eğer filtreleme yaparsam.
Yapabilirim, Lambda.
Öğe ve ardından öğe.
Bunu kopyalayacağız.
Bu madde üzerinde yapmak istediğimiz işlem şudur.
Ve eğer çalıştırırsam.
Tekrar.
İşe yarıyor.
Ne kadar güzel değil mi?
Artık bu işleve de ihtiyacım yok.
Çok, çok güzel.
Peki ya azaltma?
Lambda ile reduce kullanabilir miyiz?
Elbette.
Neden olmasın?
Diyelim ki burada azaltma diyeceğiz.
Sadece tek bir değer ürettiğimiz için listeyi buradan kaldıracağız.
Lambda diyeceğim.
Item remember reduce, önce akümülatörün sonra da öğenin parametrelerini kabul eder.
Bu şekilde iki parametre verebilirim ve sonra ne yapmak istediğimizi söyleyebilirim.
Ben sadece ürünle birlikte akümülatör eklemek istiyorum.
Eğer listemi bu şekilde yaparsam ve Çalıştır'a tıklarsam.
Şuna bir bak.
Bu da işe yarar.
Ne kadar havalı değil mi?
Yine, artık akümülatöre ihtiyacımız yok ve şimdi sadece çalıştırabileceğim ve listeyi hemen azaltabileceğim
tek satırlık fonksiyonlarımız var.
Çok, çok havalı.
Özellikle kursun anlama bölümünde lambdaları biraz daha keşfedeceğiz.
Eğer hala %100 anlamadıysanız endişelenmeyin, eğitimin ilerleyen bölümlerinde daha fazla kullanım alanı ve neden faydalı oldukları
hakkında bilgi vereceğiz.
Ancak lambda ifadelerini gerçekten çok seviyorum, kodunuzu gerçekten çok küçültüyorlar.
Ancak, kodu biraz daha az okunabilir hale getirirler.
Yani lambda ifadeleri ile gerçekten akıllıca davranabileceğiniz ancak kodunuzu başkaları için gerçekten kafa karıştırıcı hale getirebileceğiniz
bir değiş tokuş.
Bu yüzden dikkatli olmalısınız.
Şimdilik işimiz bitti.
Bir sonraki videoda görüşürüz.
Güle güle.