Может кто-нибудь объяснить, что происходит, когда выражение оценивается в system.time
? В частности, почему любые переменные, объявленные в аргументе expr
, видимые в глобальной среде?
Ниже приведена версия внутренней версии system.time
, которая ничего не делает, кроме оценки выражения, которое передается функции:
st <- function(expr){
expr
}
st(aa <- 1)
aa
[1] 1
Очевидно, что эффект от этого заключается в том, что он создает переменную aa
в глобальной среде. Это меня озадачивает, так как я думал, что назначение переменной внутри функции делает ее локальной в области.
Что здесь происходит?