ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| ANSI Common Lisp 18 Hash Tables 18.2 Dictionary of Hash Tables
18.2.9 gethash | Accessor
  Syntax: gethash key hash-table `&optional` default value, present-p (setf (gethash key hash-table `&optional` default) new-value) Arguments and Values: key - an object. hash-table - a hash table. default - an object. The default is nil. value - an object. present-p - a generalized boolean. Description: Value is the object in hash-table whose key is the same as key under the hash-table's equivalence test. If there is no such entry, value is the default. Present-p is true if an entry is found; otherwise, it is false. setf may be used with gethash to modify the value associated with a given key, or to add a new entry. When a gethash form is used as a setf place, any default which is supplied is evaluated according to normal left-to-right evaluation rules, but its value is ignored. Examples:
       (setq table (make-hash-table))  #<HASH-TABLE EQL 0/120 32206334>
       (gethash 1 table)   NIL, false
       (gethash 1 table 2)  2, false
       (setf (gethash 1 table) "one")  "one"
       (setf (gethash 2 table "two") "two")  "two"
       (gethash 1 table)  "one", true
       (gethash 2 table)  "two", true
       (gethash nil table)   NIL, false
       (setf (gethash nil table) nil)   NIL
       (gethash nil table)   NIL, true
       (defvar *counters* (make-hash-table))  *COUNTERS*
       (gethash 'foo *counters*)   NIL, false
       (gethash 'foo *counters* 0)  0, false
       (defmacro how-many (obj) `(values (gethash ,obj *counters* 0)))   HOW-MANY
       (defun count-it (obj) (incf (how-many obj)))   COUNT-IT
       (dolist (x '(bar foo foo bar bar baz)) (count-it x))
       (how-many 'foo)  2
       (how-many 'bar)  3
       (how-many 'quux)  0
See Also: remhash Notes: The secondary value, present-p, can be used to distinguish the absence of an entry from the presence of an entry that has a value of default. Allegro CL Implementation Details: None.

© Franz Inc. All Rights Reserved - File last updated 2022-07-25