В переводчику:доступа значение слова внутри объекта
>> qurl: "1234"
== "1234"
>> R: make object! [probe qurl qq: qurl probe qq]
"1234"
"1234"
== make object! [
qq: "1234"
]
Это ведет себя, как я ожидал. Все «переменные» или «слова» по умолчанию глобальны.
Использование сценария:
REBOL []
qurl: "1234"
Q: make object! [
probe join "[Q before qq] qurl: " qurl
qq: qurl
probe join "[Q] qq: " qq
qurl: qurl
probe join "[Q after qurl] qurl: " qurl
]
probe join "[main before Q] qurl: " qurl
Q
probe join "[main after Q] qurl: " qurl
возвращается:
"[Q before qq] qurl: none"
"[Q] qq: none"
"[Q after qurl] qurl: none"
"[main before Q] qurl: 1234"
"[main after Q] qurl: 1234"
Я бы ожидать, что все probe
внутри Q
object!
вернется "1234"
, но никто не делает.
Почему?
В примере 1., скобки являются своим родом оценки? – Luis
@luis Да-'compose' - незаменимая функция, которая позволяет вам предварительно обработать блок контролируемым образом. Это похоже на 'сокращение', за исключением того, что только paren! значения внутри блока уменьшаются. – rgchris