On Nov 12, 2008, at 11:11 AM, leppie wrote:
It is pretty much the same, except that a symbol is simply a "C struct" with an integer field for an id.
Where is the name of the symbol kept? Is it in the struct or in another hash table that you lookup using the id? Also, how is "eq?" implemented in IronScheme? And how does string->symbol work?
The value (if any) of the symbol is kept in a hash table.
Do you do this lookup every time you need the value of a symbol? So, if you import some variable x with location x$n (a gensym) from a library, how do you implement or compile the variable reference?
So do you mean with unintern, basically remove the value from the symbol?
No, not remove the value. In Ikarus, it would be removing the symbol from the symbol table so that subsequent read operations (or string->symbol) would return a new symbol, rather than returning the old one. I won't know how that would work in IronScheme until I understand how it works. Aziz,,,
