[R] Recall for parent
Gabor Grothendieck
ggrothendieck at gmail.com
Wed Mar 29 21:57:59 CEST 2006
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 <roebuck at mdanderson.org> 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 at 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
>
More information about the R-help
mailing list