[REBOL] word Re:(4)
From: tim:johnsons-web at: 14-Aug-2000 14:56
At 03:30 PM 8/14/00 -0700, you wrote:
>1. memb is a global word in either case.
> >> memb: 12345
> >> zzz: 87907
> >> memb: 343434
> >> index? find first system/words 'memb
> >> index? find first system/words 'zzz
>It stands to reason that:
>a) when REBOL parses the word memb it checks in its global wordlist for
>memb. If memb is found there it must be associated with the value it is
>being assigned. If memb is not found in the global wordlist, then
>b) an entry must be created for memb, and then a) must be performed for
>this new entry.
>In this scenario REBOL must do the same things it does for a previously
>defined word memb, plus more, when it creates a new word memb.
>Therefore associating an existing word with a new value is cheaper than
>creating a new word.
>This is true independend of whether you create the word outside the loop as
>a separate step. If you did not previously create the word, and you create
>the word in the loop, then the first time REBOL encounters the word in the
>loop, it will be created (costly), and when it is encountered in the loop
>again, it will be re-used (cheaper).
>All that is pure speculation and may be completely incorrect :-).
I'll take it on your authority that you are probably right. But, I just
might make it a habit of creating words outside of loops.
Always good to read your explanations of what is going on
under the hood
(my mother never could make me stop taking