Python R2


Lambda en python

Posted in Python por Arturo Elias Antón en 28 agosto 2008
Tags: , , , , ,

Me gusto mucho la explicación de lambda de la wikipedia:

“El cálculo lambda es un sistema formal diseñado para investigar la definición de función, la noción de aplicación de funciones y la recursión. Fue introducido por Alonzo Church y Stephen Kleene en la década de 1930; Church usó el cálculo lambda en 1936 para resolver el Entscheidungsproblem. Puede ser usado para definir de manera limpia y precisa qué es una “función computable”. El interrogante de si dos expresiones del lambda cálculo son equivalentes no puede ser resuelto por un algoritmo general. Esta fue la primera pregunta, incluso antes que el problema de la parada, para el cual la indecidibilidad fue probada. El cálculo lambda tiene una gran influencia sobre los lenguajes funcionales, como Lisp, ML y Haskell.
Se puede considerar al cálculo lambda como el más pequeño lenguaje universal de programación. Consiste en una regla de transformación simple (sustitución de variables) y un esquema simple para definir funciones.
El cálculo lambda es universal porque cualquier función computable puede ser expresada y evaluada a través de él. Por lo tanto, es equivalente a las máquinas de Turing. Sin embargo, el cálculo lambda no hace énfasis en el uso de reglas de transformación y no considera las máquinas reales que pueden implementarlo. Se trata de una propuesta más cercana al software que al hardware.”[ http://es.wikipedia.org/wiki/C%C3%A1lculo_Lambda%5D

Lambda es el feacture con el cual podremos ejecutar funciones anónimas. Es decir funciones sin ningún nombre.
La sintaxis de lambda en python es:

lambda :

lambda <aParameterList> : <a Python expression using the parameters>

por ejemplo

lambda x: x+1

Los ejemplos de la entrada de programación funcional con lambda quedarían:

lambda y map:

Ejemplo:

#!/usr/bin/python
# Nombre de Fichero : map_lambda.py

lt = range(5)
print lt
print map (lambda x:x + 1,lt)
print lt


lambda y filter:

Ejemplo:

#!/usr/bin/python
# Nombre de Fichero : filter_lambda.py

lt = range(5)
print lt
print map (lambda x:x in (1,3,6),lt) #como ya sabemos manejar map ;-).
print filter (lambda x:x in (1,3,6),lt)
print lt

lambda y reduce:

Ejemplo:

#!/usr/bin/python
# Nombre de Fichero : reduce.py

lt = range(5)
lts = ["hola ","como ","estas."]

print " lt -> %s"%lt
print " lts -> %s" %lts

print " reduce lt  -> %s" %reduce (lambda x,y : x+y,lt)
print " reduce lts -> %s" %reduce (lambda x,y : x+y,lts)

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: