Hi Silvia,

On Thursday, October 27, 2005, 11:34:24 AM, you wrote:

SB> Now if I do this:

>>> set a ""
SB> == ""

SB> Why if I make this:

>>> a
SB> == b
>>> b
SB> == ""

SB> I've this results? Why b got the value set for a? And a is still b?

Let me try with an example.

>> my-set: func [word value] [?? word ?? value]
>> a: 'b
== b
>> my-set a ""
word: b
value: ""
== ""
>> my-set 'a ""
word: a
value: ""
== ""

As  you can see, the actual arguments you are passing to SET are B
and  "",  so  it  sets  B  to  "". SET does not even see A; that's
because  arguments  are evaluated, and A's value is B. If you want
to pass A, instead of the value of A, you need to use 'A.

This is the same thing that happens when you write something like:

>> my-set 'a 1 + 1
word: a
value: 2
== 2

The  function  does  not  see  "1  +  1",  it  gets  the result of
evaluating  "1  +  1"; in the same way, you don't get A above, but
the result of evaluating A, which is B.

Hope this makes things a little bit clearer...

Regards,
   Gabriele.
-- 
Gabriele Santilli <[EMAIL PROTECTED]>  ---  http://www.rebol.com/
Colella Chiara software division --- http://www.colellachiara.com/

-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to