Ana içeriğe geç

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.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/lambda-function

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'da lambda.
  • 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

Python'da lambda ile sıralamakpython
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

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar