[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: proper tail recusion for `or'
DrScheme is tail-recursive. The Stepper reconstructs intermediate terms
from the actual execution state. It is the reconstruction that places 
or into the program text. Why? I forgot but I am sure that John Clements
has a lengthy explanation for it :-) 
-- Matthias
   X-Authentication-Warning: fast.cs.utah.edu: majordom set sender to owner-plt-scheme@flux.cs.utah.edu using -f
   From: Marco Maggesi <maggesi@math.unifi.it>
   Date: 15 Mar 2001 13:15:40 +0100
   User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7
   Content-Type: text/plain; charset=us-ascii
   Sender: owner-plt-scheme@fast.cs.utah.edu
   Precedence: bulk
   Please, correct me if I am wrong.  By using the stepper, it seems that
   DrScheme do not handle tail recursion properly for `or'.  Is this a bug?
   Here is an example:
     (define (list-or l)
       (if (null? l)
	   #t
	   (or (car l) (list-or (cdr l)))))
     (list-or (list #f #f #f #f #f #f #t))
   Thank you.
   MM