[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

introspection

This page is part of the web mail archives of SRFI 69 from before July 7th, 2015. The new archives for SRFI 69 contain all messages, not just those from before July 7th, 2015.



IMHO, it is also important to have a query mechanism to know
the comparison and hash criteria of a given hash table.  
Something like hash-table-type which returns a clue so that
you can know at least the given hash table uses which one of 
system-builtin criteria (e.g. eq?, eqv?, equal?, string, string-ci, ...)
or some user-defined custom functions.  A function to query
a hash table's comparison/hash functions may be acceptable 
if the default hashtables (created by make-symbol-hash-table etc.) 
are guaranteed to return functions which are eq? to the known 
functions (e.g. make-string-hash-table to return string=? as comparison 
and string-hash as hash).

It is necessary when you want to get some external representation
of a hash table, for example, a marshalizer to send a Scheme
structure over the network.  Such a function probably can't deal
with hashtables with arbitrary comparison/hash functions, but it
is still pretty useful if it deals with standard hashtables.   
Without the query mechanism, such a function can do nothing but 
abort when it sees a hash table.  hash-table->list won't help.

--shiro