我正在尝试将 R 的词法范围与 2 级函数一起使用,但 R 3.0.2 中的行为似乎不正确。
foo = function() print(ii)
eye_foo = function( ) {
ii = 1 # (A)
foo()
}
eye_foo() # (B)
ii=2 # (C)
eye_foo() # (D)
我希望(B)会打印“1”,绑定到(A)处定义的变量。相反 (B) 给出错误消息“打印错误(ii):未找到对象 'ii'”。但是,在全局范围内的 (C) 处定义 ii 后,(D) 打印“2”而忽略过程中的 (A)。
为什么(A)被忽略?