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.

Reply via email to