Code: Select all
(context 'graph)
graph
graph> (define (foo x y z) {...})
(lambda (x y z) "...")
graph> (set 'var 123)
123
graph> (symbols)
(foo var x y z)
graph> ; What are 'x, 'y, & 'z doing in there?
You may recognize this as the manual's example from the context section. It says I should only be seeing foo and var. Has the behavior of contexts changed?
Defining functions within MAIN caused the symbols I used for the parameters to be added to MAIN, as well. The "locals" from the likes of dolist, for, and let are also emerging from their hiding places, joining their brothers and sisters in their defining context.
Actually, I've been playing with ways of hiding these symbols (using contexts variously called private, local, and hidden) and have learned some interesting things along the way. Like realizing that context default functions enable a programming language dream of mine to come true. I hope to write up a show&tell about it as soon as I know whether the manual or the command line is telling me the truth ;-)
m i c h a e l
P.S. I recently installed 8.8.6, and for this test I commented out my init.lsp file. I'm not sure if this was happening in 8.8.5.