Hi, after having spent much time thinking about tail-call elimination in Python (see for instance http://baruchel.github.io/blog/ ), I finally decided to write a module for that. You may find it at:
https://github.com/baruchel/tco Tail-call elimination is done for tail-recursion as well as for continuation-passing style (cps) in a consistent syntax for both usages. Any tail-recursive function having the suitable format for being embeddable in the Y combinator can be used here with no change at all (with the main difference that tail-calls will be eliminated), but other continuations can also be added The module is available under two forms: traditional python code and cython compilable code (pre-compiled binaries are also released for the cython version). Of course the Cython version is quicker and should be preferred for serious work. I must admit I haven't browsed much in order to know if similar projects already exist; I was happy to do it for myself, but I want to share it now in case other people are interested by it also. Best regards, -- Thomas Baruchel -- https://mail.python.org/mailman/listinfo/python-list