En el ejemplo anterior, usamos variables temporales para ir apuntando los resultados y para hacer que el código fuese mas fácil de depurar, pero podríamos habernos ahorrado unas cuantas l³neas: 1: def factorial(n): 2: if n == 0: 3: return 1 4: else : 5: return n * factorial(n-1) De ahora en adelante, tenderemos a usar la version mas concisa, pero le recomendamos que utilice la version mas explícita mientras se halle desarrollando código. Cuando lo tenga funcionando, lo podra acortar, si se siente inspirado. Después de factorial, el ejemplo mas comun de una funcion matematica recursivamente de¯nida es fibonacci, que presenta la siguiente definición: fibonacci(0) = 1 fibonacci(1) = 1 fibonacci(n) = fibonacci(n ¡ 1) + fibonacci(n ¡ 2); Traducido a Python, es como sigue: 1: def fibonacci (n): 2: if n == 0 or n == 1: 3: return 1 4: else : 5: return 6: fibonacci(n-1) + fibonacci(n-2) ...
Programando en python