Recursividad como reemplazo de bucle
Hemos visto que la recursividad es la ejecución repetida de instrucciones contenidas en una subrutina. Y esto, a su vez, es similar al trabajo del ciclo. Hay lenguajes de programación en los que la construcción de bucle está completamente ausente. Por ejemplo, Prólogo.
Intentemos simular el trabajo del bucle
for
.
El bucle
for
contiene una variable de contador de pasos. En una subrutina recursiva, dicha variable se puede pasar como parámetro.
# Procedimiento LoopImitation() con dos parámetros
# Primer parámetro – contador de pasos, segundo parámetro – número total de pasos
def LoopImitation(i, n):
print("Hola N", i) # Declaración que se repetirá para cualquier valor de i
si < n: # Hasta que el contador del bucle sea igual al valor n,
LoopImitation(i + 1, n) # llamar a una nueva instancia del procedimiento,
# con parámetro i+1 (ir al siguiente valor i)