A couple comments:
You need better names. f? _f? fun? which of those two are the same? You are right. I will fix this. Have you tried it without the 'return_from' function? Sometimes you want to mix tail recursion and non-tail recursion. I see no way to automatically determine, which one to use (apart from changing CPython). So I think there must be two different returns, in this case
On 05.12.2014 20:35, Ethan Furman wrote: the normal return and the return_from.
It might be interesting to have this be a more general 'recurse' decorator. What would it do? You could have your own basic cache, and specify which methods you need for somebody to substitute in a different cache (which is a better option for all previous Pythons than making a change to 3.5). I didn't really intend to write a cache.
@Andrew Barnert: Thank you for the pointers. I will follow them as soon as I have some time. Best Regards, Constantin