guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: default stack size


From: Viktor Pavlenko
Subject: Re: default stack size
Date: Sat, 6 Sep 2003 00:20:43 -0400

>>>>> "bt" == barney toma <address@hidden> writes:

    bt> I receive a stack overflow error when creating a list of 500
    bt> entries.

    bt> (define (rep n)          ;(rep n) ==> (n n-1 n-2  ... 1)
    bt>     (cond ((= n 0) '())
    bt>           (t (cons n (rep (- n 1) )))))
    bt> (rep 500)

    bt> I believe the default stacksize is larger than this.  So I'm
    bt> wondering if this indicates some abnormal condition such as a
    bt> possible hardware problem.

I don't think so, unless I have a hardware problem too. A tail-
recursive procedure will give you a list as long as you wish (but in
ascending order):

(define (rep n ls)
  (cond ((= n 0) ls)
        (else (rep (- n 1) (cons n ls)))))

(rep 10000 '())

I think by setting the stack limit so low (389) they encourage you to
write tail recursive procedures (correct me if I'm wrong).

-- 
Viktor




reply via email to

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