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

LABELS vs. local defines



Many Schemes, including the one described in Abelson
and Sussman's book, eliminate LABELS in favor of
local defines.  Local defines allow iterative factorial
to be written as:

(define (fact n)
  (define (fact n a)
     (if (zero? n)
	 a
	 (fact (-1+ n) (* n a))))
  (fact n 1))

In essence, all lexical contours are mutatable, as opposed to
only allowing locales, but not lambda contours to mutate, as
is done in T.  I once heard the argument as to why T has
these two types of enviroments, but I am unable to reconstruct
it now.  Something about compilation I recollect.
Could some one fill in the rest?
John