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

Gabor Grothendieck ggrothendieck at gmail.com
Fri Apr 18 14:47:55 CEST 2008


Try

f2 <- local({f1 <- f1; function(x) 2 * f1(x) })


On Fri, Apr 18, 2008 at 8:22 AM, Alberto Monteiro
<albmont at centroin.com.br> wrote:
> 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.
>



More information about the R-help mailing list