The runtime stack keeps a fresh set of values for each variable in a stack frame. A new stack frame is pushed onto the stack each time a function is entered. Consider a function to compute the factorial function, written n!
(defun fact (n) (if (= n 0) 1 (* n (fact (- n 1))) ) )
>(trace fact) >(fact 3) 1> (FACT 3) 2> (FACT 2) 3> (FACT 1) 4> (FACT 0) <4 (FACT 1) <3 (FACT 1) <2 (FACT 2) <1 (FACT 6) 6
Contents    Page-10    Prev    Next    Page+10    Index