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.