Subject: Re: looking for a language with any of the following 4 charachteristics  (all 4 would be nice).
From: Erik Naggum <erik@naggum.net>
Date: Sat, 16 Feb 2002 06:06:26 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3222828389147771@naggum.net>

* gat@jpl.nasa.gov (Erann Gat)
| 2.  Having "all those nice list functions" is only an advantage insofar as
| they let you do something useful.  Being able to operate on an alist as a
| list is not in and of itself a feature, and can lead to problems if you're
| not careful.  I can't offhand think of anything useful you can do with an
| alist that is fundamentally more difficult with a hashmap.

  Suppose it is a special variable.  (let ((*alist* *alist*)) ...) allows
  you to push key-value pairs on the list and have them work in a manner
  very similar to scoping.  You may temporarily push a single key-value
  element to shadow another and then delete it when you are done, with a
  simple (delete <key> <alist> :key #'car).

  Alists are also just as efficient from key to value as from value to key.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.