08. Recursividad Terminal

08. Recursividad Terminal - 1 Lenguajes de programación...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 1 Lenguajes de programación Recursividad Terminal en SCHEME SCHEME RECURSIVIDAD TERMINAL (Tail recursive) Se dice que un módulo recursivo Se dice que un módulo recursivo tiene RECURSIVIDAD TERMINAL, cuando la solución recursiva al problema NO contiene operaciones adicionales a la llamada recursiva. Los módulos con recursividad terminal pueden traducirse en un código más eficiente de ejecución, pues no requieren del stack. 2 Ejemplo (define (factorial n) (if (<= n 1) 1 ( * n ( factorial (- n 1) )))) No es recursividad terminal pues la solución • En este caso, no se conoce el resultado final hasta que se ejecuta la última operación a la solución recursiva usa el resultado de la llamada para hacer una operación adicional. operación al regresar de las llamadas recursivas. ¿Porqué es importante la RECURSIVIDAD TERMINAL? Algunos intérpretes son capaces de detectar cuando se utiliza la recursividad terminal, y hacer más eficiente la ejecución del módulo. La solución a algunos problemas, puede optimizarse convirtiendo su solución recursiva para que utilice recursividad terminal, haciendo más eficiente su ejecución (independientemente de que el intérprete optimice o no). 3 Ejemplo (define (factorial n) (if (<= n 1) 1 ( * n ( factorial (- n 1) )))) (define (factorial n) NO Terminal (factorial-aux n 1) ) (define (factorial-aux n r) (if (<= n 1) r ( factorial-aux (- n 1) (* n r) ))) Terminal Ejemplo de Recursividad terminal Ejemplo de Recursividad terminal...
View Full Document

This note was uploaded on 05/12/2010 for the course ITC TC2006 taught by Professor Conant during the Spring '10 term at ITESM.

Page1 / 10

08. Recursividad Terminal - 1 Lenguajes de programación...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online