Skip to main content

8.2 Hash Table Access

This section describes the functions for accessing and storing associations in a hash table. In general, any Lisp object can be used as a hash key, unless the comparison method imposes limits. Any Lisp object can also be used as the value.

function gethash key table \&optional default

This function looks up key in table, and returns its associated value—or default, if key has no association in table.

function puthash key value table

This function enters an association for key in table, with value value. If key already has an association in table, value replaces the old associated value.

function remhash key table

This function removes the association for key from table, if there is one. If key has no association, remhash does nothing.

Common Lisp note: In Common Lisp, remhash returns non-nil if it actually removed an association and nil otherwise. In Emacs Lisp, remhash always returns nil.

function clrhash table

This function removes all the associations from hash table table, so that it becomes empty. This is also called clearing the hash table.

Common Lisp note: In Common Lisp, clrhash returns the empty table. In Emacs Lisp, it returns nil.

function maphash function table

This function calls function once for each of the associations in table. The function function should accept two arguments—a key listed in table, and its associated value. maphash returns nil.