Un proceso es recursivo si forma parte de si mismo o sea que se define en función de si mismo.
La recursion se lleva acabo en la vida diaria, en problemas matemáticos, en estructuras de datos y en otros problemas.
La recursion es un proceso extremadamente potente, así que se deberá analizar detenidamente para saber cuando y como aplicarla. Esto quiere decir que aunque un problema por definición sea recursivo, no siempre este será el método mas adecuado.
Antes de poner en marcha un proceso recursivo, es necesario demostrar que el
nivel máximo de recursion, esto es el numero de veces que se va a llamar
así mismo, es no solo finito, sino realmente pequeño. La razón
es que necesita cierta cantidad de memoria para almacenar el estado del proceso
cada vez que se abandona, temporalmente debido a una llamada para ejecutar un
proceso que es el mismo.
Iteración en programación es la repetición de una serie
de instrucciones. La recursividad es un ejemplo de iteración, pero usa
una notación especial conocida cono notación recursiva que no
es el caso de iteración. La iteración describe el estilo de programación
usado en lenguajes de programación imperativa. Esto esta en contraposición
de la recursividad, la cual resabe que tiene un enfoque mas declarativo.
var i, a := 0 // inicializo a antes de comenzar la iteración
for i from 1 to 3 { // ciclo 3 veces
a := a + i // incremento a con el valor actual de i
}
print a // se imprime el número