# 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)