Recursão como substituição de loop
Vimos que a recursão é a execução repetida de instruções contidas em uma sub-rotina. E isso, por sua vez, é semelhante ao trabalho do ciclo. Existem linguagens de programação nas quais a construção do loop está totalmente ausente. Por exemplo, Prolog.
Vamos tentar simular o funcionamento do loop
for
.
O loop
for
contém uma variável de contador de passos. Em uma sub-rotina recursiva, tal variável pode ser passada como um parâmetro.
# Procedimento LoopImitation() com dois parâmetros
# Primeiro parâmetro – contador de passos, segundo parâmetro – número total de passos
def LoopImitation(i, n):
print("Hello N", i) # Instrução a ser repetida para qualquer valor de i
se eu < n: # Até que o contador de loop seja igual ao valor n,
LoopImitation(i + 1, n) # chama uma nova instância do procedimento,
# com o parâmetro i+1 (vá para o próximo valor i)