Tail recursion

La recursividad es una técnica de programación que consiste en que una serie de instrucciones se repiten como una subtarea de la tarea principal, es decir, las funciones, procesos o rutinas se llaman a sí mismos cada vez que lo requieran y se ejecutan repetidas veces hasta que se satisface una condición específica.

Sin embargo, la recursividad en algunos casos, tiene un costo computacional alto, debido a las constantes llamadas a la misma función, rutina y muchas veces estas llamadas consumen demasiada memoria.

En algunos algoritmos recursivos, se puede implementar un caso de recursividad especial llamado Tail Recursion (recursividad por cola), la cual es una técnica para optimizar la recursividad eliminando las constantes llamadas recursivas. Tail recursion es cuando la llamada recursiva es la última instrucción de la función.

Sin embargo, las funciones tail recursive deben cumplir la condición que en la parte que realiza la llamada a la función, no debe existir ninguna otra sentencia.

Una ventaja de la recursividad por cola es que podemos evitar la sobrecarga de cada llamada a la función y nos evitamos el gasto de memoria de pila. Con una función tail recursive se puede evitar lo que se conoce como stack overflow, que ocurre cuando la pila de llamadas (call stack) consume mucha memoria.

Veamos esta técnica con un ejemplo muy conocido que es encontrar el factorial de un número.  Continue reading “Tail recursion”

Advertisements

La senda del Líder del Dalai Lama

La primera vez que escuché sobre el Dalái Lama, fue cuando mi amiga Milagros(fan del budismo) me habló sobre este chinito y para ser sinceros me dejó sorprendido pensando todo el día en los resultados que estaba obteniendo leyendo a este hombre.  Bueno el Dalái Lama es un sabio líder espiritual gurú del budismo, premio Nobel de la Paz en el 89 y orador que viaja por todo el mundo a compartir sus conocimientos, usualmente de cómo ser más feliz, meditación y cómo vivir en un mundo mejor.

Bueno, la senda del Líder es un libro completamente abierto a personas de distintas religiones, donde el Dalái presenta conceptos del budismo que podemos aplicarlos en nuestra vida diaria. Claro gran parte del libro está muy orientado a empresarios para que creen beneficios, empleos, felicidad en sus negocios y en sus trabajadores, pero la primera parte es sumamente interesante y algo con lo que vivimos el día a día.  Continue reading “La senda del Líder del Dalai Lama”