Función anónima


En programación informática , una función anónima ( función literal , abstracción lambda , función lambda , expresión lambda o bloque ) es una definición de función que no está vinculada a un identificador . Las funciones anónimas son a menudo argumentos que se pasan a funciones de orden superior o se utilizan para construir el resultado de una función de orden superior que necesita devolver una función. [1]Si la función solo se usa una vez, o un número limitado de veces, una función anónima puede ser sintácticamente más ligera que usar una función nombrada. Las funciones anónimas son ubicuas en los lenguajes de programación funcional y otros lenguajes con funciones de primera clase , donde cumplen el mismo rol para el tipo de función que los literales para otros tipos de datos .

Las funciones anónimas se originan en la obra de Alonzo Church en su invención del cálculo lambda , en el que todas las funciones son anónimas, en 1936, antes que las computadoras electrónicas. [2] En varios lenguajes de programación, las funciones anónimas se introducen utilizando la palabra clave lambda , y las funciones anónimas a menudo se denominan lambdas o abstracciones lambda. Las funciones anónimas han sido una característica de los lenguajes de programación desde Lisp en 1958, y un número creciente de lenguajes de programación modernos admiten funciones anónimas.

Los nombres "abstracción lambda", "función lambda" y "expresión lambda" se refieren a la notación de abstracción de funciones en el cálculo lambda, donde la función habitual f ( x ) = M se escribiría x . M ) ( M es una expresión que usa x ). Compare con la sintaxis de Python de .lambda x: M

El nombre de "función de flecha" se refiere a la matemática " mapas de " símbolo, xM . Compare con la sintaxis de JavaScript de . [3]x => M

Las funciones anónimas se pueden utilizar para contener funciones que no necesitan ser nombradas y posiblemente para un uso a corto plazo. Algunos ejemplos notables incluyen cierres y curados .

El uso de funciones anónimas es una cuestión de estilo. Usarlos nunca es la única forma de resolver un problema; en su lugar, cada función anónima podría definirse como una función con nombre y llamarse por su nombre. Algunos programadores usan funciones anónimas para encapsular código específico no reutilizable sin ensuciar el código con muchas pequeñas funciones normales de una línea.