Documente Academic
Documente Profesional
Documente Cultură
Lambda
Lambda es una letra del alfabeto griego que suele ser utilizada
para representar distintos conceptos en diversas áreas del
conocimiento.
1
Mtro. René Peña Martínez
Ejemplos en Python:
Código
def doblar(num):
2
Mtro. René Peña Martínez
resultado = num*2
return resultado
doblar(2)
def doblar(num):
return num*2
Código
lambda num: num*2
Aquí tenemos una función anónima con una entrada que recibe num,
y una salida que devuelve num * 2.
Código
doblar = lambda num: num*2
doblar(2)
Código
impar = lambda num: num%2 != 0
3
Mtro. René Peña Martínez
impar(5)
Código
revertir = lambda cadena: cadena[::-1]
revertir("Hola")
Incluso podemos enviar varios valores, por ejemplo para sumar dos
números:
Código
sumar = lambda x,y: x+y
sumar(5,2)
Función filter()
filter(multiple, numeros)
Si ejecutamos el filtro obtenemos un objeto de tipo filtro, pero podemos
transformarlo en una lista fácilmente haciendo un cast (conversión):
4
Mtro. René Peña Martínez
Por tanto cuando utilizamos la función filter() tenemos que enviar una
función condicional, pero no es necesario definirla, podemos utlizar
una función anónima lambda:
list( filter(lambda numero: numero%5 == 0, numeros) )
Por ejemplo, dada una lista con varias personas, nos gustaría filtrar
únicamente las que son menores de edad:
class Persona:
def __str__(self):
return "{} de {} años".format(self.nombre, self.edad)
personas = [
Persona("Juan", 35),
Persona("Marta", 16),
Persona("Manuel", 78),
Persona("Eduardo", 12)
]
Función map()
def doblar(numero):
return numero*2
map(doblar, numeros)
6
Mtro. René Peña Martínez
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
Mapeando objetos
def incrementar(p):
p.edad += 1
return p
personas = [
Persona("Juan", 35),
Persona("Marta", 16),
Persona("Manuel", 78),
Persona("Eduardo", 12)
]
En Haskell:
Ejemplo:
doble = \x -> x + x
Ejemplo2
Ejemplo3
ejemplo que filtra todos los números pares que son mayores que diez de una lista
dada:
ejemplo que atraviesa una lista y para cada elemento x calcula el término x ^ 2 x: