Problem:
1) In the rebol22-draft-manual\expevaluation.html one can read:
{{
Evaluating Simple Values
Simple values just evaluate to themselves. Nothing special happens. The
value is simply returned. For instance, if at the prompt you type:
10:30
the same value will be returned (10:30).
This is also true for values such as:
integer 1234
decimal 12.34
string "REBOL world!"
time 13:47:02
date 30-June-1957
tuple 199.4.80.1
money $12.49
char #"A"
binary #{ab82408b}
email [EMAIL PROTECTED]
issue #707-467-8000
tag <IMG SRC="xray.jpg">
file %xray.jpg
url http://www.rebol.com/
block [milk bread butter]
This is true for the list and hash datatypes as well.
}}
One is immediately tempted to draw:
(i) Rebol blocks, lists, hashes, strings evaluate to themselves.
2) In the rebol22-draft-manual\expevaluation.html one can read:
{{
Words are evaluated somewhat differently than simple values. When a word is
evaluated its value is looked-up, evaluated, and returned as a result.
}}
One can use this to verify (i):
>> a: []
== []
>> a
== []
One considers (i) to be verified.
3) Other means how to verify (i):
>> (([]))
== []
One considers (i) to be verified.
4) In the rebol22-draft-manual\expevaluation.html one can read:
{{
Evaluating Blocks
Blocks are not normally evaluated. They are normally treated as data.
Typing:
[1 + 2]
will return the same block. No evaluation would happen.
To evaluate a block, you use the do function:
do [1 + 2]
}}
The latter seems to be in contradiction with what was said under 1) 2) or
3).
Solution:
a) There is a possibility to overlook the discrepancy and be happy with the
current state.
b) The following seems preferable to me:
(i) Rebol blocks, lists, hashes, strings evaluate to themselves.
(ii) The correct description of Do:
Do is a function that interprets it's argument as a Rebol code. (don't mix
this with evaluation)
Advantages:
More coherent documentation.
Disadvantages:
The need to rewrite doc's.
Opinions:
?
Ladislav