[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.



    
-------