The word "evaluates" is surely used inconsistently (with two different
meanings) throughout the doc's, so I tried to suggest the use of two
notions: "evaluates" and "is interpreted (as containing Rebol code)"
> [EMAIL PROTECTED] wrote:
> >
> >
> > ((expression))
> >
> > don't force the double evaluation as was demonstrated (I mean that we
get a
> > result of the expression, but we don't force Rebol to evaluate it once
> > more).
> >
> > There is a way we can force double evaluation like this:
> >
> > do expression
> >
> > but be warned! This is not the double evaluation in the case where the
> > result of the expression is a block, a string, ...
> >
>
> Along the same vein
>
> >> bingo: "Woof!"
> == "Woof!"
> >> join "b" ["i" "n" "g" "o"]
> == "bingo"
> >> (join "b" ["i" "n" "g" "o"])
> == "bingo"
> >> ((join "b" ["i" "n" "g" "o"]))
> == "bingo"
>
> (just as you've been saying), but
>
> >> do join "b" ["i" "n" "g" "o"]
> == "Woof!"
> >> do (join "b" ["i" "n" "g" "o"])
> == "Woof!"
>
> with, or without, the parentheses
>
> >> blk: [join "b" ["i" "n" "g" "o"]]
> == [join "b" ["i" "n" "g" "o"]]
> >> reduce blk
> == ["bingo"]
> >> reduce reduce blk
> == ["bingo"]
>
> All of this is despite the descriptions of
>
> >> ? do
> Evaluates a block, file, URL, function, word, or any other value.
> Arguments:
> value -- Normally a file name, URL, or block
> Refinements:
> /args -- If value is a script, this will set its
> system/script/args
> arg -- Args passed to a script. Normally a string.
> /next -- Do next expression only. Return block with result
> and new position.
>
> and
>
> >> ? reduce
> Evaluates an expression or block of expressions and returns
> the result.
> Arguments:
> value --
>
> Now, is it just me (again ;-) or does it appear that the term
> "evaluates" doesn't mean the same thing in these two descriptions?
>
> -jn-
>
>
>