guile-user
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]