Creates and returns a new hash table which, in addition to the standard functionality, can have a user-defined test, a user-defined hash function, and be a weak hash table.
make-hash-table &key test size rehash-size rehash-threshold hash-function weak-kind => hash-table
A designator for a function of two arguments, which returns
t
if they should be regarded as the same and
nil
otherwise.
A designator for a function of one argument, which returns a hash value.
One of
:value
,
t
,
:key
,
:both
,
:one
,
:either
,
nil
. The default is
nil
.
The standard definition of
make-hash-table
is extended such that
test
can be any suitable user-defined function, except that it must not call process-wait or similar
mp
package functions which suspend the current process. If
test
is not one of the standard test functions (
eq
,
eql
,
equal
and
equalp
), and if
hash-function
is not supplied, then the hash value is the same as would be used if
test
were
equalp
.
hash-function may be supplied only if test is not one of the standard test functions. It takes a hash key as its argument and returns a hash value to use for hashing.
If
weak-kind
is non-
nil
, it makes
hash-table
weak. Its semantics are the same as the second argument of set-hash-table-weak, that is:
(make-hash-table :weak-kind
weak-kind <other-args>
)
(let ((ht (make-hash-table <other-args> )))
(set-hash-table-weak ht weak-kind )
ht)