[EMAIL PROTECTED] wrote:

> In this context, what is the definition of a
> "condition" and why does
> REBOL treat the two conditions differently?  Why not
> use a block for an
> "if" statement as we do for loops?

Because WHILE needs to evaluate the condition several times, so it
needs the code of the condition, not the result of its execution;
IF, on the other hand, just needs the result. If you really want
an IF which uses a block, then use the following:

my-if: func [
   "My strange if" [throw "To make RETURN work as expected"]
   cond-block [block!] "Condition block"
   code-block [block!] "Code block"
] [
   if do cond-block code-block
]

Ciao,
    /Gabriele./
o--------------------) .-^-. (----------------------------------o
| Gabriele Santilli / /_/_\_\ \ Amiga Group Italia --- L'Aquila |
| GIESSE on IRC     \ \-\_/-/ /  http://www.amyresource.it/AGI/ |
o--------------------) `-v-' (----------------------------------o

Reply via email to