Processo recursivo do SICP versus processo iterativo: usando um procedimento recursivo para gerar um processo iterativo
no SICPSeção 1.2.1O autor dando um exemplo de código abaixo para mostrar como usar o processo iterativo para resolver o problema fatorial:
(define (factorial n)
(fact-iter 1 1 n))
(define (fact-iter product counter max-count)
(if (> counter max-count)
product
(fact-iter (* counter product)
(+ counter 1)
max-count)))
e diz"Pode parecer perturbador referirmo-nos a um procedimento recursivo como o factorial, como gerador de um processo iterativo. No entanto, o processo é realmente iterativo: o seu estado é capturado completamente pelas suas três variáveis de estado e um intérprete só precisa de acompanhar três variáveis para executar o processo. "
Eu não entendo o que o autor quer dizer. Qual é a diferença entre um procedimento recursivo e um processo recursivo? E por que ele disse que o procedimento recursivo abaixo gera um processo iterativo?