▲ | jayceedenton 2 days ago | |||||||||||||||||||||||||||||||||||||||||||
Without the explicit recur it's far too easy to misidentify a tail call and use recursion where it's not safe. Recur has zero inconvenience. It's four letters, it verifies that you are in a tail position, and it's portable if you take code to a new function or rename a function. What's not to love? | ||||||||||||||||||||||||||||||||||||||||||||
▲ | rgherdt 2 days ago | parent [-] | |||||||||||||||||||||||||||||||||||||||||||
That doesn't work for mutual recursion, what is quite common in Scheme programs. Besides, tail call optimization is not only useful in recursion. | ||||||||||||||||||||||||||||||||||||||||||||
|