Question:
Write a program to trace all calls to the below function
1 2 3 4 5 |
def fib(n): if n is 0 or n is 1: return 1 else: return fib(n-1) + fib(n-2) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
def fib(n): if n is 0 or n is 1: return 1 else: return fib(n-1) + fib(n-2) def trace(f): f.indent = 0 def g(x): print '| ' * f.indent + '|--', f.__name__, x f.indent += 1 value = f(x) print '| ' * f.indent + '|--', 'return', repr(value) f.indent -= 1 return value return g fib = trace(fib) print fib(input("Enter the limit:")) |
1 2 3 4 5 6 7 8 9 10 11 12 |
Enter the limit:3 |-- fib 3 | |-- fib 2 | | |-- fib 1 | | | |-- return 1 | | |-- fib 0 | | | |-- return 1 | | |-- return 2 | |-- fib 1 | | |-- return 1 | |-- return 3 3 |
Leave a Reply