I have some beginner's questions regarding local, in the docs, it says that
"local evaluates an expression in a local environment".

Q1: why is B different from A? In B, is a<-a+1 getting evaluated
before eval proceeds?

#A
a=0
eval(quote(a<-a+1),new.env())
a # 0

#B
a=0
eval(a<-a+1,new.env())
a # 1

Q2: Why does mlocal behave differently?

#C
local
#function (expr, envir = new.env())
#eval.parent(substitute(eval(quote(expr), envir)))
#<environment: namespace:base>

a=0
local(a<-a+1)
a #0



mlocal <- function (expr, envir = new.env())
  eval(quote(expr), envir)

a=0
mlocal(a<-a+1)
a #1


Thank you
S

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to