4 ms·
Understanding Python bytecode by implementing tail call optimization
- hughdbrown 11y agoThis 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)
- mynameisfiber 11y agoNo, but the time complexity is the same.
- hughdbrown 11y agoOkay 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.