[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: stack overflow problem
From: |
William Xu |
Subject: |
Re: stack overflow problem |
Date: |
Sun, 05 Feb 2006 22:08:04 +0800 |
User-agent: |
Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux) |
Stephen Compall <address@hidden> 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