

Understanding Python bytecode by implementing tail call optimization - mynameisfiber
http://blog.fastforwardlabs.com/post/117173339298/bytecode-hacking-for-great-justice

======
hughdbrown
This 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
No, but the time complexity is the same.

~~~
hughdbrown
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:

    
    
        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.

