Comment by clhodapp
9 hours ago
No algorithm requires tail-call elimination in a general-purpose language with imperative mutability. It's just another way to express iteration.
9 hours ago
No algorithm requires tail-call elimination in a general-purpose language with imperative mutability. It's just another way to express iteration.
Sure, but mutual recursion might require `goto` for example. Or an explicit state machine.
I can see how it might require an explicit state machine (keep a mutable state number and switch over the inlined bodies of what could be functions), but I'm not seeing how it could require `goto`.
Are there more-complex relationships that might require it?
I meant it more in the sense that “you need one or the other” rather than “some cases require one and some other cases require the other”.