Skip to content
Back to formatted view

Raw Message

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