guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: On uninterned symbols


From: Martin Grabmueller
Subject: Re: On uninterned symbols
Date: Thu, 17 May 2001 12:08:56 +0200 (MET DST)

> From: Michael Livshin <address@hidden>
> Date: 17 May 2001 11:05:46 +0300
> 
> in what way are they uninterned, then?  it seems to me that the reader
> still canonicalizes them in some way (else `eq?' wouldn't return #t).
> so basically your uninterned symbols just have very funny names.
> 
> [ sorry if I'm talking nonsense, I'm not really awake yet. ]

Well, maybe `uninterned' is not an appropriate name.  They are
actually interned `in another way', that means they end up in another
global hash table than normal symbols.

Note that the symbol stored in `f' in my example is also produced by
`gensym', so `g0' and `#{foo bar}' are both uninterned.  They actually
don't have funny names, it's just that the printer uses the #~ prefix
to make it possible to read them in again.  This is my suggestion, as
Marius seemed to want the feature of reading in uninterned symbols
again, and have them eq? to the original (uninterned) symbols.

So it is possible to have two symbols named `g0', but they are not eq?
since they exist in different hash tables.

So the precise version is: string->symbol or symbol read syntax
produces normal symbols, whereas gensym or #~SYMBOL syntax produces
`uninterned' symbols.  Whether we want such a behaviour is still to be
discussed and decided.

Regards,
  'martin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]