unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Florian von Savigny <florian265@uboot.com>
Subject: Re: fastest data structure for a hash-like lookup
Date: 05 Jun 2003 01:45:16 +0200	[thread overview]
Message-ID: <m3n0gxs8z7.fsf@russel.teuto37> (raw)
In-Reply-To: 5lwug1h86f.fsf@rum.cs.yale.edu

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2632 bytes --]


"Stefan Monnier" <monnier+gnu.emacs.help/news/@flint.cs.yale.edu> writes:

> What do the keys look like ?  Can you choose them freely ?

They are strings, more precisely, attribute values (ID tokens) taken
from SGML instances.

> In elisp, it seems you could use a hash table of lisp lists,
> vectors, or structures.  See `defstruct' in the CL manual for
> structure.

CL means "common lisp"?

> See `make-hash-table' in the elisp manual.

That seems to be Emacs 21, which I'm trying to do without.

> You mean it would be built once and for all and then stay constant.

Yes, the code will even written by another program and imported by
emacs via load-file.

> > Sorry I wasn't able to find any useful documentation (the manual is as
> > terse as ever).
> 
> Which manual, what did you look for in it, what did you expect to find
> and what did you find instead ?

I tried to find advice on nested data structures in the chapters about
Lisp data types, lists, and sequences, arrays and vectors. There is an
example of a nested alist under copy-alist, but I tried to find the
fastest such structure (and I doubted an alist was fast, since "keys"
are not unique there). There was no hint in the section about vectors
whether you could use them in such a way. After having played with
Kevin's kind proposal, I realise chapter 7 about symbols is very
relevant, but that's not where I thought to find anything.

I'm not criticizing the manual in saying it is terse (condensed, more
precisely). That makes it very clear when you try to find some detail
you've forgotten. What I sometimes miss, though, is something with a
"cookbook" approach: "I want to XY, how do I ...".

It is hard for me to say what I "found instead", since I haven't tried
to read in depth what apparently wouldn't help me further. It seems
entirely possible to me if I knew more about the BASIC NOTIONS of
Elisp, it would have been quite obvious that yes of course, why not,
structure X and structure Y can be combined, thus, sections that
seemed without a clue now would have been very helpful then. I suppose
I'm not a serious programmer in this sense; I only try to learn things
as far as I need them to produce something I can use (in other words,
I'm the type who uses Perl...). Imitating also saves a lot of time
compared to trying out.

I don't know whether that answers your questions adequately.


-- 


Florian v. Savigny

If you are going to reply in private, please be patient, as I only
check for mail something like once a week. - Si vous allez répondre
personellement, patientez s.v.p., car je ne lis les courriels
qu'environ une fois par semaine.

  reply	other threads:[~2003-06-04 23:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-04 19:10 fastest data structure for a hash-like lookup Florian von Savigny
2003-06-04 18:57 ` lawrence mitchell
2003-06-04 19:05 ` Kevin Rodgers
2003-06-04 20:58 ` Stefan Monnier
2003-06-04 23:45   ` Florian von Savigny [this message]
2003-06-04 23:09     ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3n0gxs8z7.fsf@russel.teuto37 \
    --to=florian265@uboot.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).