Hi Carl
> So you're saying that in a case like this... > > func1: has [a b c][some code or other] > func2: has [a b c][some other code] > > there's only ever a single instance of 'a 'b and 'c in existance at > any one time? Does that also apply if 'func2 calls 'func1? There are many instances of 'a 'b 'c around, but the limit is only about the number of different words in the global context, the object! pointed by system/words. But "These words are locals", one can say! Correct, but every time the system loads some new code, the sistem by default add all its word to the global context. If a word is already in the global context, it is not added. Only when the code is executed the words of your code become local. >> print length? first system/words 2509 >> use [foo][] >> print length? first system/words 2510 ; foo is added to the global context >> use [foo][] >> print length? first system/words 2510 ; foo is already in the global context and is not added >> func [foo][foo: 2] >> print length? first system/words 2510 ;foo is already in the global context and is not added It is Load and the implicit Load at Console and Do level, which add new words to the global context. I do not know why Rebol make this, I find it unuseful at all. There is a workaround, but a bug in get and set makes its use very limited. You can find an example at my rebsite: http://web.tiscali.it/anarkick/gcmask.r If RT corrects the bugs, we could write all the code without adding a single word to the global context. To end, when searching the name for a new word one can check this list to find a word to re-use: request-list "global words" sort first system/words --- Ciao Romano -- To unsubscribe from this list, please send an email to [EMAIL PROTECTED] with "unsubscribe" in the subject, without the quotes.
