Understanding Python bytecode by implementing tail call optimizationblog.fastforwardlabs.com 12 pointsmynameisfiber11 years ago3 commentsSaveHideCopy link On HNComments−hughdbrown11yThis code does not do what the author thinks it does: def factorial(N, result=1): if N == 1: return 1 return factorial(N-1, N*result)−mynameisfiberOP11yNo, but the time complexity is the same.−hughdbrown11yOkay but if you are going to call the function factorial, why not have it actually calculate a factorial? This would have done the job: def factorial(N, result=1): if N == 1: return result return factorial(N-1, N*result) Assuming that you never call it with the result argument.As written, it just looks like the author never ran the code.
Comments
This code does not do what the author thinks it does:
No, but the time complexity is the same.
Okay but if you are going to call the function factorial, why not have it actually calculate a factorial? This would have done the job:
Assuming that you never call it with the result argument.As written, it just looks like the author never ran the code.