[Also sent privately because Ecartis does not like me anymore]

On Wed, Jan 14, 2009 at 7:47 AM, Giuseppe Chillemi
<[email protected]> wrote:

> Instead "second [one two]" returns 'TWO rather than TWO which is a thing you
> don't notice in the consolle as the ouput is TWO in both situations.

It's the opposite:

>> second [one two]
== two
>> type? second [one two]
== word!
>> two
== 2
>> type? two
== integer!
>> 'two
== two
>> type? 'two
== word!
>> type? second ['one 'two]
== lit-word!

"two" is a word!. When a word is evaluated (DO or REDUCE), it produces
the value it is set to. "'two" is a lit-word!. When a lit-word is
evaluated (DO or REDUCE), it produces the respective word value. You
are not getting a lit-word from second, but a word, which is indeed
the second value in the block. But, if you type:

>> reduce two
== 2

the REDUCE function is not getting a word as argument, it is getting
the integer 2, because the word is evaluated BEFORE being passed to
REDUCE. Notice above how "two" produces "2" and how "type? two"
returns "integer!" and NOT "word!".

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

Reply via email to