chris.umcp-cs@UDel-Relay (02/15/83)
From: Chris Torek <chris.umcp-cs@UDel-Relay> The problem is that each (arg @i[n]) is evaluated when used; that is, that the values being passed to a function are not evaluated until requested (and then once each time). Well, this works fine for everything EXCEPT evaluating variables that have been rebound locally. I've started looking into this, and it's not all that easy. You can't tell how many levels back to go to evaluate arguments. You can't evaluate all arguments ahead of time, as in most languages, since that's not the way it works now (meaning you'd screw everything else up). I think maybe what's required is some attachment to variable bindings that says just who bound them; then if (arg) is being done, to evaluate a variable, you go back bindings until the original caller's bindings are obtained. - Chris