Lambda fonksiyonu
- İngilizcesi
- Lambda Function
- Türkçe karşılığı
- lambda ifadesi, anonim fonksiyon
- Okunuşu
- lemda fankşın
Günlük kullanımda iki ad da yaygın.
Kısaca
Lambda fonksiyonu, adı olmadan satır içinde yazılan küçük fonksiyondur; genellikle sıralama ya da filtreleme yapan başka bir fonksiyona doğrudan aktarılır.
Lambda fonksiyonu nedir?
Anonim fonksiyon ya da lambda ifadesi olarak da adlandırılan lambda fonksiyonu, ona ad verilmeden tanımlanan bir fonksiyondur. Genellikle kısadır ve tam ihtiyaç duyulan yerde, çoğunlukla başka bir fonksiyona argüman olarak yazılır. Adı, fonksiyonları tanımlamak için Yunan harfi λ'yı kullanan, 1930'lardan kalma matematiksel bir hesaplama modeli olan lambda kalkülüsünden gelir.
Her dilin kendi sözdizimi vardır. JavaScript'te (x) => x * 2 gibi ok fonksiyonları, Python'da lambda x: x * 2, Java'da x -> x * 2, C#'ta x => x * 2 ve C++'ta [](int x) { return x * 2; } kullanılır. Lambda'lar genellikle çevreleyen koddaki değişkenleri okuyabilir; bu da onları closure yapar. Python lambda'ları bilerek tek bir ifadeyle sınırlar, bu yüzden daha uzun olan her şey normal, adlandırılmış bir fonksiyon olmalıdır.
Lambda, bir iş arkadaşına resmi yazılı bir prosedür yerine “bunları tarihe göre sırala” gibi verilen hızlı bir yapışkan not gibidir. Lambda'lar sıralama anahtarları, liste filtreleri, olay işleyicileri ve kısa callback'ler için kullanılır; ayrı bir adlandırılmış fonksiyon burada açıklık katmadan gürültü ekler.
Lambda farklı bir fonksiyon türü değildir; diğer fonksiyonlar gibi davranır ve yalnızca adı yoktur. Barındırdığı fonksiyonlara “lambda” diyen sunucusuz (serverless) bulut platformlarıyla da ilgisi yoktur; bunlar talep üzerine çalışan küçük programlardır ve lambda ifadeleriyle ya da onlarsız yazılabilir. Ayrıca bir lambda otomatik olarak yüksek dereceli fonksiyon değildir: genellikle onlara aktarılan fonksiyondur.
Önemli noktalar
- Lambda, adı olmayan ve kullanıldığı yerde satır içinde tanımlanan bir fonksiyondur.
- Sözdizimi değişir: JavaScript ve C#'ta
=>, Java'da->, Python'dalambda. - Lambda'lar genellikle çevredeki değişkenleri yakalar; bu da onları closure yapar.
- Sıralama anahtarları ve filtreler gibi kısa callback'ler için idealdir.
- Sunucusuz bulut fonksiyonları aynı adı taşır ama farklı bir kavramdır.
Örnek
users = [
{"name": "Grace", "age": 45},
{"name": "Ada", "age": 36},
{"name": "Linus", "age": 28},
]
# The lambda tells sorted() which value to sort by
by_age = sorted(users, key=lambda user: user["age"])
print([u["name"] for u in by_age]) # ['Linus', 'Ada', 'Grace']
# The same idea in JavaScript: users.sort((a, b) => a.age - b.age)Sık sorulan sorular
Lambda ile normal fonksiyon arasındaki fark nedir?
Lambda'nın adı yoktur ve satır içinde, genellikle tek bir ifade olarak yazılır; normal fonksiyon ise bir adla tanımlanır ve birçok deyim içerebilir. Oluşturulduktan sonra ikisi de aynı biçimde çağrılır.
Ok fonksiyonları (arrow functions) lambda ile aynı mıdır?
Ok fonksiyonları JavaScript'in lambda sözdizimidir. Normal JavaScript fonksiyonlarından önemli bir noktada da ayrılırlar: kendi this değerleri yoktur, bu yüzden çevreleyen kodun this değerini kullanırlar.
Buna neden lambda deniyor?
Ad, matematikçi Alonzo Church'ün 1930'larda oluşturduğu ve fonksiyonları yazmak için Yunan harfi λ'yı kullanan biçimsel bir sistem olan lambda kalkülüsünden gelir. Lisp bu sözcüğü benimsedi ve birçok dil onu izledi.
İlgili sayfalar
- FonksiyonProgramlamanın Temelleri, s. 20Fonksiyon, belirli bir işi yapan, isteğe bağlı olarak parametre denen girdiler alıp sonuç döndürebilen, adlandırılmış ve yeniden kullanılabilir kod bloğudur.
- ClosureProgramlamanın Temelleri, s. 6Closure, oluşturulduğu kapsamdaki değişkenleri hatırlayan bir fonksiyondur; dıştaki fonksiyon sona erdikten sonra bile bu değişkenleri kullanabilir.
- Yüksek dereceli fonksiyonProgramlamanın Temelleri, s. 56Yüksek dereceli fonksiyon, başka bir fonksiyonu argüman olarak alan, fonksiyon döndüren ya da ikisini de yapan fonksiyondur; davranış veri gibi taşınabilir.
- CallbackProgramlamanın Temelleri, s. 5Callback, başka bir fonksiyona argüman olarak verilen ve o fonksiyonun bir iş bittiğinde ya da bir olay gerçekleştiğinde sonradan çağırdığı fonksiyondur.
- Fonksiyonel programlamaProgramlamanın Temelleri, s. 21Fonksiyonel programlama, paylaşılan verileri değiştirmeyen saf fonksiyonlarla yazılım kurma stilidir; kodu daha öngörülebilir ve test etmesi kolay yapar.
- ServerlessDevOps ve Bulut, s. 46Serverless, sağlayıcının kodu talep üzerine çalıştırıp sunucuları yönettiği, otomatik ölçeklediği ve yalnızca gerçek kullanıma ücret aldığı bulut modelidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin