This Q&A is part of a weekly series of posts highlighting common questions encountered by technophiles and answered by users at Stack Exchange, a free, community-powered network of 100+ Q&A sites.
Well, it's easy enough to refer to R6RS: Implementations of Scheme must be properly tail-recursive. Procedure calls that occur in certain syntactic contexts called tail contexts are tail calls. A ...
The version that involves mutation is likely to be slower, since our compiler doesn’t optimize mutation (so that much effort can be spent elsewhere). The idiomatic way to write an imperative loop is ...