unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Qs on obarrays
@ 2005-10-12  0:52 Drew Adams
  0 siblings, 0 replies; 8+ messages in thread
From: Drew Adams @ 2005-10-12  0:52 UTC (permalink / raw)


The Elisp manual hints that you can create and fill an obarray like this:

(let ((my-obarray (make-vector 7 0)))
  (dolist (name my-names) (intern name my-obarray))
  (completing-read "XXX: " my-obarray))

That works. And this also works:

(let ((my-obarray (make-vector 7 0)))
  (dolist (name my-names) (intern name my-obarray))
  (all-completions "" my-obarray))

However, this does not seem to work for me:

(let ((my-obarray (make-vector 7 0)))
  (dolist (name my-names) (intern name my-obarray))
  (all-completions "" my-obarray 'commandp))

Even if all of my-names are symbol-names of commands, this always returns
nil. Any idea why?

Also, the obarray length must be supplied to make-vector. Anyone know a
heuristic for a good vector length to use when you expect a certain number
of symbols? I notice that the length of standard variable `obarray's value
is 1511 (prime, presumably). If I expect on the order of N symbols, what is
a good length to use? Or is there no simple formula? If not, anyone know a
good length for, say, 100 symbols?

(BTW - The obarray vector itself does not show all of the interned symbols,
when printed. I assume this is because if there are multiple symbols in the
same bucket only one of them can be printed when the vector is shown.)

^ permalink raw reply	[flat|nested] 8+ messages in thread
[parent not found: <mailman.10964.1129078391.20277.help-gnu-emacs@gnu.org>]

end of thread, other threads:[~2005-10-12 20:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-12  0:52 Qs on obarrays Drew Adams
     [not found] <mailman.10964.1129078391.20277.help-gnu-emacs@gnu.org>
2005-10-12  1:32 ` Pascal Bourguignon
2005-10-12  2:02   ` Drew Adams
2005-10-12 16:17   ` Kevin Rodgers
2005-10-12 17:14     ` Drew Adams
2005-10-12 18:23       ` Kevin Rodgers
2005-10-12 20:24         ` Drew Adams
2005-10-12 15:53 ` Stefan Monnier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).