Generic BigList Resident (#73)(an instance of Root Class made by Hacker)     This is the object you want to use as a parent in order to @create a place for your biglists to live. Suitably sick souls may wish to reimplement :_genprop and :_kill to reclaim unused properties (this :_kill just throws them away and this :_genprop just relentlessly advances.... who cares). Anyway, you'll need to look at $biglist before this will make sense. VERB SOURCE CODE: _make:
":_make(...) => new node with value {...}";
if (!(caller in {this._mgr, this}))
return E_PERM;
endif
prop = this:_genprop();
add_property(this, prop, args, {$generic_biglist_home.owner, ""});
return prop;
.
_kill:
":_kill(node) destroys the given node.";
if (!(caller in {this, this._mgr}))
return E_PERM;
endif
delete_property(this, args[1]);
.
_get: return (caller == this._mgr) ? this.(args[1]) | E_PERM; . _put: return (caller == this._mgr) ? this.(args[1]) = listdelete(args, 1) | E_PERM; . _genprop:
gp = this._genprop;
ngp = "";
for i in [1..length(gp)]
if (gp[i] != "z")
ngp = (ngp + "bcdefghijklmnopqrstuvwxyz"[strcmp(gp[i], "`")]) + gp[i + 1..length(gp)];
return " " + (this._genprop = ngp);
endif
ngp = ngp + "a";
endfor
return " " + (this._genprop = ngp + "a");
.
_ord:
"this is a dummy. You have to decide what your leaves are going to look like and
then write this verb accordingly. It should, given a leaf/list-element, return the
corresponding key value. So for an ordinary alist, where all of the leaves are of
the form {key,datum}, you want:";
return args[1][1];
.
PROPERTY DATA:       _genprop       mowner       _mgr |