[R] Function redefinition - not urgent, but I am curious

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Mon Apr 21 10:19:49 CEST 2008


Richard.Cotton at hsl.gov.uk wrote:
>> Suppose I write:
>>
>> f1 <- function(x) x + 1
>> f2 <- function(x) 2 * f1(x)
>> f2(10)
>> # 22
>> f1 <- function(x) x - 1
>> f2(10)
>> # 18
>>
>> This is quite obvious. But is there any way to define f2
>> in such a way that we "freeze" the definition of f1?
>>     
>
> f1 <- function(x) x+1
> f1frozen <- f1
> f2 <- function(x) 2*f1frozen(x)
> f2(10)  # 22
> f1 <- function(x) x-1
> f2(10)  # 22
>   
> f1 <- function(x) x+1
> f2 <- local({f1 <- f1; function(x) 2 * f1(x)})
> f2(10)
[1] 22
> f1 <- function(x) x-1
> f2(10)
[1] 22

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



More information about the R-help mailing list