Here are two ways:
# method 1. nest an extra alwaysEven alwaysEven <- function(x) { alwaysEven <- function(x) { handleOdd <- function(x) { alwaysEven(x-1) # use Recall-like here } return(if (x %% 2) handleOdd(x) else x) } alwaysEven(x) } any2even <- alwaysEven rm(alwaysEven) any2even(3) # method 2. sys.function alwaysEven <- function(x) { handleOdd <- function(x) { sys.function(1)(x-1) # use Recall-like here } return(if (x %% 2) handleOdd(x) else x) } any2even <- alwaysEven rm(alwaysEven) any2even(3) On 3/29/06, Paul Roebuck <[EMAIL PROTECTED]> wrote: > What's the best way to simulate Recall for parent function? > Consider this one-time recursive code: > > alwaysEven <- function(x) { > handleOdd <- function(x) { > alwaysEven(x-1) # use Recall-like here > } > > return(if (x %% 2) handleOdd(x) else x) > } > any2even <- alwaysEven > rm(alwaysEven) > any2even(3) > > ---------------------------------------------------------- > SIGSIG -- signature too long (core dumped) > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html