[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tables
Weak Tables. A table is a list of associations - pairs of
keys and values. If the key is garbage, i.e., is no longer accessible,
I would like the association (i.e. the pointer to the value) to go away.
This is not implementable in the current scheme.
The tables used by OBJECT-HASH/OBJECT-UNHASH are weak tables, and it isn't
too hard to implement similar tables for yourself if you really need them.
I agree, however, that they should be part of the abstraction.
Table Walking. It is desirable (occasionally) to apply a procedure to
each <key,value> pair in a table. This is possible in the current
scheme only if you put a layer on top of the table package.
Or if you used WALK-TABLE. Unreleased, but that never stopped me from using
it.
Before someone goes out and blindly writes a new table package,
I'd like to hear more feedback. Are these idioms you use a lot?
Are there other ideas you really need? Is this even the proper
abstraction?
--- Jonathan
I think I agree with Rees ["I really wanted them to be extremely minimal, with
very little structure. I wanted them to be as simple and primitive as pairs.
They were to be viewed as primitive components out of which one could build
higher-level abstractions"]. I think Scott's HT package is great (except that
it doesn't implement weak tables), but I find it somewhat "big". I never
use more than 25% of the functions provided. Since most can be built up on
top of the 25% or so that are "really primitive" very easily in an particular
application, my vote lies with a good abstraction that is reasonably "small".
-- Ashwin.
-------