Two normal symbols are equal if only if they are spelled the same.
A normal implementation of symbols will keep a hash table of all
used symbols. Each time 'foo is found in the source the same
symbol will be returned. Thus two symbols can be compared
with eq? (think: simple pointer comparison).

Now imagine that you want to generate a unique symbol.
One could try to use (string->symbol "a very unsusal name")
but if you are *really* unlucky, someone might have used
the same symbol name some where else in an obscure
linbrary - and if he did the name won't be unique.

Thus string->uninterned-symbol can be thought of as
"generate a symbol, but don't put it in the global hash
table of symbols". More abstractly: "Generate a unique
symbol."

-- 
Jens Axel Søgaard
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to