Python Language
Programación Funcional en Python
Buscar..
Introducción
La programación funcional descompone un problema en un conjunto de funciones. Lo ideal es que las funciones solo tomen entradas y produzcan salidas, y no tengan ningún estado interno que afecte la salida producida para una entrada dada. A continuación, se encuentran las técnicas funcionales comunes a muchos idiomas: como lambda, map, reduce.
Función lambda
Una función anónima, en línea definida con lambda. Los parámetros de la lambda se definen a la izquierda de los dos puntos. El cuerpo de la función se define a la derecha de los dos puntos. El resultado de ejecutar el cuerpo de la función se devuelve (implícitamente).
s=lambda x:x*x
s(2) =>4
Función de mapa
Mapa toma una función y una colección de elementos. Hace una nueva colección vacía, ejecuta la función en cada elemento de la colección original e inserta cada valor de retorno en la nueva colección. Devuelve la nueva colección.
Este es un mapa simple que toma una lista de nombres y devuelve una lista de las longitudes de esos nombres:
name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths) =>[4, 4, 3]
Función de reducción
Reducir toma una función y una colección de elementos. Devuelve un valor que se crea combinando los elementos.
Este es un simple reducir. Devuelve la suma de todos los elementos de la colección.
total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total) =>10
Función de filtro
Filtro toma una función y una colección. Devuelve una colección de cada elemento para el que la función devolvió True.
arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)] # outputs[5,6]