Peter Bex scripsit: > I wasn't aware of that CL behaviour. IIUC that's actually conflating > two different things: creating an uninterned symbol and "unbinding" > an interned symbol. I don't know of a way to unbind a variable through > Scheme, but you can set the symbol's value slot (0) to C_SCHEME_UNBOUND > in C. This has to go with the warnings "Don't try this at home", and > "this voids your warranty". :)
Actually, neither of those things is what CL `unintern` does, though I can see how people might come to believe that. What it does is to remove an existing symbol from the symbol table. The symbol maintains its properties, including its value, but any future attempt to refer to a symbol of the same name will create an entirely new object, since lookup in the symbol table will fail (and of course this new symbol is undefined). To put things another way, `unintern` mutates its argument from interned to uninterned. It's a dangerous thing to do, because it corrupts Scheme/Lisp read-write equivalence. -- John Cowan http://www.ccil.org/~cowan co...@ccil.org If I have seen farther than others, it is because I am surrounded by dwarves. --Murray Gell-Mann _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users