# Funciones normales sin misterio def cuadrado(numero): return numero**2 def cubo(numero): return numero**3 # Función que usa otra función como parámetro def aplicar(funcion,numero): return funcion(numero) print(aplicar(cubo,3)) # Esta función nos genera una función nueva dependiendo del parámetro # Y la devuelve def generar_funcion(exponente): def potencia(numero): return numero**exponente return potencia micubo=generar_funcion(3) micuadrado=generar_funcion(2) print(micuadrado(5)) print(micubo(2)) # Python usa filter que es de orden superior # Su primer parámetro es una función lista=[1,2,8,3,4,5] def aprobado(numero): return numero>=5 def suspendidos(numero): return numero<5 def impar(numero): return numero%2==1 res=list(filter(aprobado,lista)) print(res) res=list(filter(impar,lista)) print(res) res=list(filter(suspendidos,lista)) print(res) def mitad(numero): return numero/2 res=list(map(mitad,lista)) print(res)