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

From: Dimitris Rizopoulos <dimitris.rizopoulos_at_med.kuleuven.be>
Date: Fri, 18 Apr 2008 14:57:05 +0200

you could define 'f1' inside 'f2' or assign 'f1' to a new environemnt (or use local()):

# 1st
f2 <- function(x){

    f1 <- function(x) x + 1
    2 * f1(x)
}

f2(10)
f1 <- function(x) x - 1
f2(10)

# 2nd
myenv <- new.env()
assign("f1", function(x) x + 1, myenv)
f2 <- function(x){

    f1 <- get("f1", envir = myenv)
    2 * f1(x)
}
f1 <- function(x) x - 1
f2(10)

I hope it helps.

Best,
Dimitris



Dimitris Rizopoulos
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium

Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
     http://www.student.kuleuven.be/~m0390867/dimitris.htm


> This is just my curiousity working.
>
> 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
> f2 <- function(x)
> # put something here
> 2 * f1(x)
> # probably put something else here too
>
> f2(10)
> # 22
> f1 <- function(x) x - 1
> f2(10)
> # 22 - f1 inside f2 does not change
>
> Alberto Monteiro
>
> ______________________________________________
> 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.
>

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm



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 Fri 18 Apr 2008 - 13:51:18 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 Fri 18 Apr 2008 - 14:30:30 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