Message-ID: <4A13EE28.1080206@idi.ntnu.no>
Date: 2009-05-20T11:48:56Z
From: Wacek Kusnierczyk
Subject: Functions returning functions
In-Reply-To: <755f575b0905200421g7f092a03gfdd85ce05ef6a81b@mail.gmail.com>
Paulo Grahl wrote:
> Dear All:
>
> I have a question regarding the behavior of functions.
> Say I define a function that returns another function :
> A <- function(parameters) {
> # calculations w/ parameters returning 'y'
> tmpf <- function(x) { # function of 'y' }
> return(tmpf)
> }
>
> The value of the parameters are stored in an environment local to the
> function.
consider this example:
foo = function(a, b)
function(c)
if (c) a else b
x = 1
y = 2
bar = foo(x, y)
bar(TRUE)
# 1
x = 0
bar(TRUE)
# 1, not 0
y = 0
bar(FALSE)
# 0, not 2
vQ