При использовании parse
для извлечения значений из данных я часто в конечном итоге объявляю глобалы для записи данных copy
. Например,Сведение к минимуму загрязнения пространства имен при копировании данных с помощью синтаксического анализа
numbers: none
rule: [ thru 5 copy numbers to 10 to end ]
parse [ 1 2 3 4 5 6 7 8 9 10 ] [ rule ]
Что бы лучший способ сделать это без использования numbers
как глобальный? Должен ли я определить context
для обертки всей партии или есть более элегантное решение?
В этом случае нет необходимости в «номерах: нет», как это необходимо, если вы используете CONTEXT. – endo64
Endo yes that is true, если правило преуспевает, как этот пример, но скажите, что мой пример содержит только первые 4 числа, и у меня не было «чисел: нет», тогда числа не имели бы значения, то есть он был бы неустановлен !, который является поведением по умолчанию с USE в Rebol 2. Это может потребоваться или не хотеть, чтобы вы захотели. ИСПОЛЬЗОВАНИЕ в Rebol 3 имеет другое поведение и автоматически устанавливает номера в none. – Brett
Спасибо, Брет, я не знал, что ИСПОЛЬЗОВАНИЕ ведет себя по-другому в R3. – endo64