R: Recursive Calling

Recall {base} | R Documentation

## Recursive Calling

### Description

`Recall` is used as a placeholder for the name of the function in which it is called. It allows the definition of recursive functions which still work after being renamed, see example below.

### Usage

    Recall(...)

### Arguments

`...` | all the arguments to be passed.

### Note

`Recall` will not work correctly when passed as a function argument, e.g. to the `apply` family of functions.

### See Also

`do.call` and `call`.

`local` for another way to write anonymous recursive functions.

### Examples

    ## A trivial (but inefficient!) example:
    fib <- function(n)
       if(n<=2) { if(n>=0) 1 else 0 } else Recall(n-1) + Recall(n-2)
    fibonacci <- fib; rm(fib)
    ## renaming wouldn't work without Recall
    fibonacci(10) # 55

[Package base version 3.1.2 Index]