Aplicación del cálculo lambda en un equipo implica el tratamiento de "funciones" como objetos de primera clase, lo que plantea problemas de aplicación de lenguajes de programación basado en pila. Esto se conoce como el problema Funarg.
Las contrapartes más importantes para el cálculo lambda en la programación son lenguajes de programación funcional, que esencialmente aplicar el cálculo aumentada con algunas constantes y tipos de datos. Lisp usa una variante de la notación lambda para la definición de funciones, sino sólo su subconjunto puramente funcional ("Pure Lisp") es realmente equivalente al cálculo lambda.
Los lenguajes funcionales no son los únicos que las funciones de apoyo como objetos de primera clase. Numerosos lenguajes imperativos, por ejemplo, Pascal, han apoyado durante mucho tiempo pasando subprogramas como argumentos a otros subprogramas. En C y el subconjunto C de C-como el resultado equivalente se obtiene al pasar punteros a los códigos de funciones (subprogramas). Estos mecanismos se limitan a subprogramas escritos explícitamente en el código, y no apoyan directamente las funciones de nivel superior. Algunos lenguajes imperativos orientados a objetos han notaciones que representan las funciones de cualquier orden, los mecanismos en que se disponga en C, Smalltalk y más recientemente en Eiffel ("agentes") y C # ("delegados"). A modo de ejemplo, la Torre Eiffel "agente en línea" expresión
Un ejemplo en Python usa la forma lambda de funciones:
func = lambda x: x * x
Lo anterior crea una función anónima llamada func que puede ser pasada como parámetros a otras funciones, ser almacenada en variables.
+2 en clase
ResponderEliminar