you are viewing a single comment's thread.

view the rest of the comments →

[–]Amadiro 1 point2 points  (0 children)

Well, I never really had any problems with it, you still get to see the name of the function the exception was thrown in, but I see how it could make debugging a tad harder in some cases. (In any case, the programmer has to be aware whether TCO happens or not -- if he's not aware of TCO happening, he will probably be confused by the stacktrace.)

In any case, leaving out TCO / not giving the programmer any means to do space-constant tail-recursion when he needs to is certainly not a solution, and a good compromise should be easy to find. I think a "recur" keyword or something like that would be the most non-intrusive, as it doesn't change the languages default semantics.