Почему Rebol 3 не учитывает параметры функции в кавычках, которые заключены в скобки?
Диалект DO использует серию категории PAREN! для приоритета, и обычно выкипает основную структуру скобок перед вызовом функции.
Однако раньше в Rebol 2 можно было указывать функциюОпределение того, что вы хотели, чтобы оно подавляло оценку скобок на месте вызова. Вы сделали это с помощью "буквальное слово Апостроф отметка на параметре:
evaluated: func [param] [probe param]
non-evaluated: func ['param] [probe param]
>> evaluated (1 + 2)
3
>> non-evaluated (1 + 2)
(1 + 2)
Так что вы получите серию! тип категории, класса PAREN! ... в данном случае с тремя символическими элементами внутри:,,1
+
2
, Это не работает в Rebol 3:
>> non-evaluated (1 + 2)
3
Это ошибка или целеустремленное дизайнерское решение? Есть ли обходной путь? Обратите внимание, что размещение оператора цитирования на месте вызова выигралоне работает, потому что тогда этосимволическое словоquote
что цитируется, а потом парен! оценивается самостоятельно, чтобы стать окончательным значением выражения: - /
>> non-evaluated quote (1 + 2)
quote
== 3