Toda recursão pode ser convertida em iteraçã

A reddit thread trouxe uma pergunta aparentemente interessante:

s funções recursivas do @Tail podem ser facilmente convertidas em funções iterativas. Outros, podem ser transformados usando uma pilha explícita. Podecad recursão ser transformada em iteração?

O exemplo (contador?) Da postagem é o par:

(define (num-ways x y)
  (case ((= x 0) 1)
        ((= y 0) 1)
        (num-ways2 x y) ))

(define (num-ways2 x y)
  (+ (num-ways (- x 1) y)
     (num-ways x (- y 1))

questionAnswers(36)

yourAnswerToTheQuestion