La expresión lambda en programación es una sintaxis especial para definir objetos funcionales , tomada de λ-calculus . Generalmente se usa para declarar funciones anónimas donde se usan, y generalmente permite cerrar el contexto léxico en el que se usa la expresión. Usando expresiones lambda, puede declarar funciones en cualquier parte de su código.
Las expresiones lambda son compatibles con muchos lenguajes de programación ( Common Lisp , Ruby , Perl , Python , PHP , JavaScript (a partir de ES 2015), C# , F# , Visual Basic .NET , C++ , Java , Scala , Kotlin, Object Pascal ( Delphi) , Haxe, Dart [1] y otros).
Las expresiones lambda adoptan dos formas. El formulario que reemplaza más directamente a un método anónimo es un bloque de código encerrado entre llaves. Este es un reemplazo directo para los métodos anónimos . Las expresiones lambda, por otro lado, brindan una forma aún más abreviada de declarar un método anónimo y no requieren código entre llaves ni una declaración de retorno. Ambos tipos de expresiones lambda se pueden convertir en delegados .
Todas las expresiones lambda usan el operador lambda =>, que se lee como "va a" (Java, F# y PascalABC.NET usan el operador ->). El lado izquierdo de la declaración lambda define los parámetros de entrada (si los hay), y el lado derecho contiene el bloque de expresión o declaración. La expresión lambda se x => x * 5lee como "una función de x que va a x veces 5" [2] .