Warum werden in Rebol 3 keine in Klammern gesetzten Funktionsparameter berücksichtigt?

Der DO-Dialekt verwendet Serien der Kategorie PAREN! Dies hat Vorrang und führt in der Regel dazu, dass die zugrunde liegende Klammerstruktur vor dem Aufrufen einer Funktion entfernt wird.

In Rebol 2 war es jedoch früher möglich, in der Definition einer Funktion anzugeben, dass die Auswertung von Klammern auf der Aufrufseite unterdrückt werden soll. Sie haben dazu ein "Wort" -Anführungszeichen für einen Parameter verwendet:

evaluated: func [param] [probe param]

non-evaluated: func ['param] [probe param]

>> evaluated (1 + 2)
3

>> non-evaluated (1 + 2)
(1 + 2)

So bekommen Sie eine SERIE bestanden! Kategorietyp der Klasse PAREN! ... in diesem Fall mit drei symbolischen Elementen im Inneren:1, +, 2. Dies funktioniert in Rebol 3 nicht:

>> non-evaluated (1 + 2)
3

Ist das ein Fehler oder eine gezielte Designentscheidung? Gibt es eine Problemumgehung? Beachten Sie, dass es nicht funktioniert, den Anführungszeichenoperator auf einer Anrufseite zu platzieren, da dies dann das symbolische Wort istquote das wird zitiert, und dann das paren! wird einzeln ausgewertet, um den endgültigen Wert des Ausdrucks zu erhalten: - /

>> non-evaluated quote (1 + 2)
quote
== 3

Antworten auf die Frage(1)

Ihre Antwort auf die Frage