The DO dialog uses a series of PAREN categories! for priority, and usually throws out the main structure of parentheses before calling the function.
However, in Rebol 2, it was possible to specify in the function definition that you want it to suppress the evaluation of parentheses on callsite. You did this using the apostrophe label "literal word" for the parameter:
evaluated: func [param] [probe param] non-evaluated: func ['param] [probe param] >> evaluated (1 + 2) 3 >> non-evaluated (1 + 2) (1 + 2)
So you get the SERIES! type of category, class PAREN! ... in this case with three symbolic elements inside: 1 , + , 2 . This does not work in Rebol 3:
>> non-evaluated (1 + 2) 3
Is this a mistake or a focused design decision? Is there a workaround? Please note that placing a quote operator on a call site will not work, because then it is a symbolic word quote , which is quoted, and then the password! gets an estimate on its own to become the final value of the expression: - /
>> non-evaluated quote (1 + 2) quote == 3
source share