I am reading the GNU Emacs Lisp Reference Manual, 9.3 Creating and Interning Symbols:
Each element of the obarray is a bucket which holds all the symbols with a given hash code; to look for a given name, it is sufficient to look through all the symbols in the bucket for that name’s hash code.
The Manual says that an element is a bucket and can hold more than one symbol.
But in my trial:
ELISP> (let (Is-there-a-bucket?)
(mapc #'(lambda (element)
(unless (or
(eq element 0)
(symbolp element))
(setq Is-there-a-bucket? t)))
obarray)
Is-there-a-bucket?)
nil
I found that each element of the obarray
is either a fixnum
0 or a symbol
(as mentioned later in the Manual), instead of the so-called bucket.
This is where I get confused.