Hi, Try this: F<-function(x,type="local"){Y=3 x*Y} F(3) #[1] 9 Y<-4 F(3) #[1] 9 Y<-5 F(3) #[1] 9
A.K. ----- Original Message ----- From: "Schoenfeld, David Alan,Ph.D.,Biostatistics" <dschoenf...@partners.org> To: "'r-help@r-project.org'" <r-help@r-project.org> Cc: Sent: Monday, August 6, 2012 5:07 PM Subject: [R] Force evaluation of a symbol when a function is created I am porting a program in matlab to R, The problem is that Matlab has a feature where symbols that aren't arguments are evaluated immediately. That is: Y=3 F=@(x) x*Y Will yield a function such that F(2)=6. If later say. Y=4 then F(2) will still equal 6. R on the other hand has lazy evaluation. F<-function(x){x*Y} Will do the following Y=3 F(2)=6 Y=4 F(2)=8. Does anyone know of away to defeat lazy evaluation in R so that I can easily simulate the Matlab behavior. I know that I can live without this in ordinary programming but it would make my port much easier. Thanks. The information in this e-mail is intended only for the ...{{dropped:14}} ______________________________________________ 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. ______________________________________________ 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.