私が理解しているように、任意のブロックを任意のコンテキストにバインドできるはずです。特に、グローバル コンテキスト ブロックをローカル コンテキストにバインドできます。
>> a: context [
print: does [rebol/words/print "yeah!"]
f: func[b] [do bind b 'print]
]
>> a/f [print "hello"]
yeah!
== "hello"
では、ローカル コンテキスト ブロックをグローバル コンテキストにバインドすることも可能である必要がありますか? しかし、私の試みは失敗しました:
>> b: context [
b: [print "hello"]
print: does [rebol/words/print "yeah!"]
f: func[] [do bind b 'system]
]
>> b/b
== [print "hello"]
>> do b/b
yeah!
== "hello"
>> b/f
hello
>> do b/b
hello
私はそれを作ったようですが:
>> equal? bind? 'system bind? in b 'b
== false
>> same? bind? in b 'f bind? in b 'b
== true
ここで私のエラーは何ですか?