在REBOL中向上下文动态添加单词

Gre*_*ley 7 rebol rebol2

想象一下以下REBOL代码:

foo: context [bar: 3]

我现在有一个上下文foo'bar定义.如何在此上下文中动态注入新单词?可能吗?

我试过了:

set/any in foo 'baz 3

但这不起作用,因为表达式in foo 'baz失败,因为上下文中没有'baz定义单词foo.

我应该补充一点,我知道有一种方法可以做到这一点:

foo-prototype: [bar: 3]
foo: context foo-prototype
foo: context head append foo-prototype [baz: 3]

但是,如果您无法访问foo原型块呢?

Pet*_*ood 8

您可以通过使用现有对象作为原型来创建新对象来实现相同目的.

>> foo: make object! [bar: 3]
>> foo: make foo [baz: 3]
>> probe foo
make object! [
    bar: 3
    baz: 3
]
Run Code Online (Sandbox Code Playgroud)