采用以下创建上下文的代码:
c: context [a: 2]
您可以看到它创建了一个上下文c
,并且不受全局上下文a
的约束:
>> ?? c
c: make object! [
a: 2
]
>> a
** Script Error: a has no value
** Near: a
现在,如果你使用bind 'a c
,它会在它被绑定的上下文中返回单词的值:
>> get bind 'a c
== 2
这也与in c 'a
:
>> (get bind 'a c) = (get in c 'a)
== true
看起来in
是一个bind
带有翻转参数的版本
那么,有什么in
不同呢?
中添加了一些明显的功能bind
,例如/copy
对效率进行了改进,并且还接受了 ablock!
而不是单个单词作为其words
论点。
在这种情况下,问题就变成了,为什么in
?
笔记
这最初是由 this question中的评论引起的,当时我不太了解 bind 的作用,关于gitter的讨论促使我发布了这个