Bufff siento que no se explicó bien este tema y es uno de los temas más complejos de la programación… trataré de explicarlo mejor, afortunadamente para explicar recursividad existe un robotito llamado “Karel” (la flechita azul del lado derecho) que puedes usar para programar su comportamiento en un mundo.
.
Para ponerlos en contexto, puedes decirle que camine y que se apague y eso lo podemos hacer mediante código, en este caso, para declarar una función en Karel lo hacemos con la palabra define-nueva-instruccion
, para este caso le puse de nombre: caminar
, la función hará que el robotito camine solamente si frente-libre
, es decir, va a caminar hasta que se tope con un muro, como podemos ver, en el mundo hay un muro que detendrá a Karel:
.
.
Entonces, puedes ver cómo dentro de la función caminar
justamente dentro de la condición si
se manda a llamar de nuevo a la función caminar
, es decir, se está mandando a llamar así misma, y por cada llamada se ejecuta el código, puedes ver qué parte del código se va ejecutando en este gif.
.
Coo logras apreciar, eso es recursividad, cuando una función se manda a llamar a si misma, y la recursividad acaba cuando la condición deja de cumplirse, en este caso puedes ver que cuando la condición es falsa está la instrucción apagate
que es básicamente el fin del programa 😄
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?