Recursividad y funciones de orden superior

# función recursiva: una función que se llama a sí misma

# factorial de un número: 5!=5*4*3*2*1 multiplicación de todos los números hasta el 1
# factorial de un número: 5! = 5*4! multiplicación del número por el factorial de ese número -1
# Si yo quiero haccer una función recursiva:
# identificar el caso base: Siempre hay un final donde devolvemos un valor y no otra llamada
# if numero<2 devuelvo 1
# poner nuestra función como una llama a ella misma
# numero*factorial(numero-1)
# En esta llamada de alguna manera nos acercamos al caso base

def factorialRecursivo(numero):
    if numero < 2:
        return 1
    else:
        return numero * factorialRecursivo(numero - 1)

print(factorialRecursivo(5)) # 120

# funciones de orden superior
# utilizar funciones como parámetros

# yo tengo una función procesar que tiene dos parámetros
# una función y un número
def procesar(funcion, numero):
    return funcion(numero)

def cuadrado(numero):
    return numero**2
def doble(numero):
    return numero*2

print(procesar(cuadrado,3)) # cuadrado es un parámetro
print(procesar(doble,3)) # doble es un parámetro

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos