AD

¿Ya dominas lo básico? Un curso estructurado de R es la vía rápida para dar el salto.

Ver cursos de R en Udemy

Enlace de afiliado. No te cuesta nada extra.

📊Lecciones de R
Lección 12 / 68

Funciones recursivas

En esta lección escribirás una función que se llama a sí misma.

Hacen falta dos piezas: un caso base que corta la cadena, y una llamada a sí misma con un problema más pequeño.

El código de ejemplo calcula el factorial. El caso base es n <= 1.

Sin caso base, R se detiene al llegar al límite de anidamiento, que por defecto ronda las 5.000 llamadas y se puede consultar con options("expressions"). Es un límite bastante bajo comparado con otros lenguajes.

Y hay una razón práctica para no abusar de la recursión aquí: las llamadas a función en R son caras. Un cálculo recursivo que en C sería inmediato puede tardar muchísimo. Cuando importa el rendimiento, lo idiomático es una operación vectorizada, y si de verdad hace falta recursión profunda se escribe esa parte en C++ con el paquete Rcpp.

Para el factorial concreto, R ya trae factorial(5), y prod(1:5) hace lo mismo sin ninguna recursión.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar R directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)