From: ···@sef-pmax.slisp.cs.cmu.edu
Subject: Re: Symbols vs Strings
Date: 
Message-ID: <1991Oct09.132558.105611@cs.cmu.edu>
    From: ········@daisy.ee.und.ac.za (Bobby Abraham)
    ...    
    What I want to know is what are the advantages/disadvantages of using interned
    symbols over strings as key values?
    
The advantage of using symbols is that the string is converted once and for
all, at READ time, into a unique pointer.  It is more efficient to hash on
this than on an arbitrary string and to check that the key actually found
is the one you asked for.  Of course, that initial conversion is itself a
hastable lookup, so this is only an advantage if you use the resulting
symbol many times.  One disadvantage is that a symbol won't magically go
away if you remove it from the hash table -- you've got to use unintern.

Depending on the application and the Lisp implementation, it might or might
not be a good idea to store associated information (symptoms, various class
memberships) on the symbol's property list instead of in a hash table.

-- Scott Fahlman