следующее:
оложим, у меня есть следующая функция:
g = function(x) x+h
Теперь, если у меня есть в моем окружении объект с именемh
У меня не было бы никаких проблем
h = 4
g(2)
## should be 6
Теперь у меня есть другая функция:
f = function() {
h = 3
g(2)
}
Я бы ожидал:
rm(h)
f()
## should be 5, isn't it?
Вместо этого я получаю ошибку
## Error in g(2) : object 'h' not found
Я бы ожидалg
оценивать в средеf
, таким образомh
вf
будет привязан к ч в г, как это было, когда я выполнилg
в пределах.GlobalEnv
, Этого не происходит (очевидно). любое объяснение почему? как преодолеть это, чтобы функция внутри функции (например,g
) будет оцениваться с использованием окружающей среды?