Changes between Version 2 and Version 3 of SymbolsCowan


Ignore:
Timestamp:
11/05/13 17:27:21 (4 years ago)
Author:
cowan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SymbolsCowan

    v2 v3  
    1 This WG2 proposal extends Scheme symbols in a variety of traditional Lisp ways: it provides uninterned symbols, symbol values, and property lists.  It can be implemented portably on top of standard Scheme symbols, provided that the `symbol?`, `symbol=?`, and `symbol->string` procedures are redefined to deal with uninterned symbols as well as standard symbols.  For a high-quality implementation, a record facility is needed for uninterned symbols, and a hash table or similar lookup table to associate standard symbols with their values and property lists. 
     1This WG2 proposal extends Scheme symbols in a variety of traditional Lisp ways: it provides uninterned symbols and property lists.  It can be implemented portably on top of standard Scheme symbols, provided that the `symbol?`, `symbol=?`, and `symbol->string` procedures are redefined to deal with uninterned symbols as well as standard symbols.  For a high-quality implementation, a record facility is needed for uninterned symbols, and a hash table or similar lookup table to associate standard symbols with their property lists. 
    22 
    33== Uninterned symbols == 
     
    4040 
    4141Returns a newly allocated uninterned symbol whose human-readable name is distinct from that of any symbol returned by a previous call to `gensym`.  If ''string'' is present, it is used as a prefix of the human-readable name. 
    42  
    43 == Symbol values == 
    44  
    45 `(symbol-ref `''symbol''`)` 
    46  
    47 Returns an object which is the value of ''symbol''.  The value may or may not have anything to do with the global binding of the identifier corresponding to ''symbol''. 
    48  
    49 `(symbol-set! `''symbol obj''`)` 
    50  
    51 Changes the value of ''symbol'' to ''obj''.  This may or may not affect the global binding of the identifier corresponding to ''symbol''.  An unspecified value is returned. 
    5242 
    5343== Property lists ==