Hi Bryce,

I'm not sure I understand your question. The way I interpret what you are
saying, the following mechanisms may prove useful.

Evaluating the following for loop 

(Note here I am using to set-word!)
>> for i 1 10 1 [ print mold to set-word! join 'var [i] ]

results in

var1:
var2:
var3:
var4:
var5:
var6:
var7:
var8:
var9:
var10:

To assign a value use set

(Note here I am using to word!, not to set-word! You could also use
set-word! but its not necessary)
>> for i 1 10 1 [ 
     set to word! join 'var [i] i 
     print [ 
       to word! join 'var [i] 
       get to word! join 'var [i]
     ]
   ]


Evaluating this for loop generates the following output:

var1 1
var2 2
var3 3
var4 4
var5 5
var6 6
var7 7
var8 8
var9 9
var10 10

The varN words we created are available outside of the for loop:

>> var1
== 1
>> var2
== 2
>> var3
== 3

Or to automate the process:

>> for i 1 10 1 [ print [mold to word! join 'var [i] " " get to word! join
'var [i] ] ]
var1   1
var2   2
var3   3
var4   4
var5   5
var6   6
var7   7
var8   8
var9   9
var10   10

We can unset the varNs as well:

>> for i 1 10 1 [ unset to word! join 'var [i] ]

Now, var1 no longer exists

>> var1
** Script Error: var1 has no value.
** Where: var1

Another mechanism that may come in handy:

Here I set the word test to the set-word! value var1.

>> i: 1 test: to set-word! join 'var [i]
== var1:
>> :test
== var1:

When I attempt to get the value of var1, I generate an error because var1
was not assigned a value:
>> get :test
** Script Error: var1 has no value.
** Where: get :test

Now I set the value of var1 to 10. It works like this. REBOL dereferences
the word test and retrieves its value, which is the set-word! var1:. A
set-word! is like a magnet, it attaches itself to whatever value it finds
next. That value is 10:
>> test 10
== 10

The word test continues to evaluate to var1, as it did before:
>> :test
== var1:

We can now safely retrieve the value of var1:
>> get :test
== 10

Or to illustrate it differently:

>> unset 'var1
>> var1
** Script Error: var1 has no value.
** Where: var1
>> i: 1 test: to set-word! join 'var [i]
== var1:
>> test 10
== 10
>> var1
== 10

A final remark. I would normally just collect my stuff in a block, instead
of using set-words:


>> for i 1 10 1 [
      append [] i
   ]
== [1 2 3 4 5 6 7 8 9 10]

or if you want to later retrieve the block:

>> result-block: for i 1 10 1 [
    append [] i
   ]
== [1 2 3 4 5 6 7 8 9 10]
>> result-block
== [1 2 3 4 5 6 7 8 9 10]



At 12:43 PM 5/31/00 -0700, you wrote:
>First let me tell you I took a C++ course(1301) years ago and haven't done
>too much programing since.  I'm just installed a small LAN and am trying
>to learn rebol for maitnance and fun....
>Now my problem...I need to make the value of var1:test1 into the name of a
>new variable that can hold a value like test1:4.  Then the programs loops
>and var1:test2 and I want test2:some#.  I can make the value of var1
>increment I just can't figure out how to make test#:some# from var1:test#.
>Thanks for any help, I looked all over the sites documentation but didn't
>see what I needed...if its on there just point me in the direction to look
>if its easier.  Thanks, Bryce
>
>
>--------------------------------------------------------------------------
>
>Why is College Club the largest and fastest growing college student site?
>Find out for yourself at http://www.collegeclub.com
>
>
>
>

;- Elan >> [: - )]

Reply via email to