Lambda výraz v programování je speciální syntaxe pro definování funkčních objektů , vypůjčená z λ-kalkulu . Obecně se používá k deklaraci anonymních funkcí tam, kde jsou použity, a obvykle umožňuje uzavření lexikálního kontextu , ve kterém je výraz použit. Pomocí výrazů lambda můžete deklarovat funkce kdekoli v kódu.
Lambda výrazy jsou podporovány v mnoha programovacích jazycích ( Common Lisp , Ruby , Perl , Python , PHP , JavaScript (od ES 2015), C# , F# , Visual Basic .NET , C++ , Java , Scala , Kotlin, Object Pascal ( Delphi) , Haxe, Dart [1] a další).
Lambda výrazy mají dvě podoby. Formulář, který nejpříměji nahrazuje anonymní metodu, je blok kódu uzavřený ve složených závorkách. Jedná se o přímou náhradu za anonymní metody . Na druhé straně výrazy lambda poskytují ještě zkrácenější způsob, jak deklarovat anonymní metodu a nevyžadují ani kód ve složených závorkách, ani příkaz return. Oba typy výrazů lambda lze převést na delegáty .
Všechny výrazy lambda používají operátor lambda =>, který se čte jako "goes to" (Java, F# a PascalABC.NET používají operátor ->). Levá strana příkazu lambda definuje vstupní parametry (pokud existují) a pravá strana obsahuje výraz nebo blok příkazu. Výraz lambda x => x * 5se čte jako „funkce x, která jde do x krát 5“ [2] .