On Thu, Mar 19, 2009 at 3:26 PM, Patrick O'Keefe <[email protected]> wrote: > I agree, but I think the astonishment is aimed at the drop rather > than the stem assignment. (At least MY astonishment is.) That > behavior implies that the interpreter has to maintain both a list > of specifically assigned variables and a list of specifically dropped > variables (at least for stems that have been assigned). I have no > idea how the interpreters actually support the behavior of stem > initialization, but I'm quite sure they don't predefine and assign > every possible variable for the given stem. They must, in fact, > treat the assigned value as a default to be used for each > unassigned and undropped variable associated with the stem. > > Including dropped variables in that behavior just adds work for the > interpreter.
The key is to understand how the variables are maintained: in a b-tree. So "x.='foo'" sets a node for "x.". Once you explicitly set "x.banana", a new leaf is created for that. And when you drop a variable, the leaf is maintained/created too. Admittedly, the implementation isn't obvious, but it does allow for arbitrary tails. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

