Message127102
How the conversion from a recursive algorithm to an iterative one works depends on the specific algorithm involved. A trampoline does the job for tail calls, but not necessarily any other recursive algorithm.
Factorial actually has a fairly trivial iterative algorithm, so it isn't a great example for general purpose algorithm conversion:
def factorial(x):
result = 1
for i in range(1, x+1):
result *= i
return result
I believe having trampoline in functools would end up being something of an attractive nuisance - in cases where it applies, there are probably better, algorithm specific, ways of eliminating a recursive call. |
|
Date |
User |
Action |
Args |
2011-01-26 11:58:40 | ncoghlan | set | recipients:
+ ncoghlan, rhettinger, eric.araujo, Jason.Baker |
2011-01-26 11:58:40 | ncoghlan | set | messageid: <1296043120.62.0.400647292223.issue11011@psf.upfronthosting.co.za> |
2011-01-26 11:58:40 | ncoghlan | link | issue11011 messages |
2011-01-26 11:58:40 | ncoghlan | create | |
|