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