I agree that's a very sensible solution.

On Sep 8, 1:20 am, rivercheng <riverch...@gmail.com> wrote:
> Hi,
>
> How about just keep a list of keys as an extra list besides the hash-
> map?
> The look-up and iterating without order can be done efficiently
> without the help of the key list.
> Iterating with the original order is a little bit expensive but should
> be acceptable if the hash function is fast.
>
> Certainly, directly store the address of the item in the key list
> could be more efficient, but only if the hash function is
> not fast enough to be negligible compared with memory access.
>
> On Sep 8, 5:19 am, Conrad <drc...@gmail.com> wrote:
>
> > Hi everyone! I have some data that consists of key/value pairs, but
> > that need to maintain their order, in terms of when they were added to
> > the list. In most lisps you'd do this with an association list, with a
> > performance penalty of course if the alist gets too large.
>
> > I was wondering if there's any consensus on how to deal with this type
> > of data in Clojure yet. Clearly there is a partial alist support,
> > since you can write things like (seq {:a 1 :b 2}) which essentially
> > creates an alist- But no lookup function exists for this, I think.
>
> > Alternatively, I suppose it would be possible to create a new type of
> > map that performs better than an alist but can return items in the
> > order they were added to the list, if desired (given the way maps are
> > implemented in Clojure, this info may already be available internally
> > as part of the implementation I would imagine- Is this exposed
> > anywhere?)
>
> > Anyway, I was just curious what people's thoughts were on this
> > issue...
>
> > -Conrad
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to