return
заставит свою функцию возвращать любое предоставленное значение.Дело в том, что context
тоже функция!Таким образом, когда вы делаете:
o: context [
a: 1
return a
]
o
слово будет установлено в возвращаемое значение из функции context
, которая принимает блок, оценивает его в соответствии с семантикой make object! ...
(см. Подробности здесь ) и возвращает целое число 1
в процессе, потому что это то, что вы просили это сделать.
Я не совсем уверен, что еще вы ожидали в этом случае.Если вы хотите установить o
в значение object!
- просто не используйте return
.