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

From: Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>
Date: Mon, 21 Apr 2008 10:19:49 +0200

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

______________________________________________
R-help_at_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.
Received on Mon 21 Apr 2008 - 08:23:40 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 21 Apr 2008 - 08:30:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive