Stephen Compall <[EMAIL PROTECTED]> writes: > On Sat, 2006-02-04 at 18:54 +0800, William Xu wrote: >> (define (enumerate-interval low high) >> "Return a sequence list by walking from LOW to HIGH. >> e.g., >> (enumerate-interval 1 10) >> => (1 2 3 4 5 6 7 8 9 10)" >> (if (> low high) >> '() >> (cons low (enumerate-interval (1+ low) high)))) >> >> When i passed it a slightly big interval, guile complains "stack >> overflow", >> >> >> Might be a bug? (i also tested this on mzscheme, and works fine.) > > Sorry, but while optimization of tail calls is guaranteed by R5RS, > non-tail recursion to arbitrary depth is not. Try rewriting your code > so that the recursive call is the "last thing" done;
Yeah, i understand that. But i thought this ought to be done automatically in some way, not requiring user to do this manually, which would make codes less readable, isn't it? [...] -- William _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user