Recursividad Pura

¿Qué es la recursividad pura?

Una función recursiva pura contiene todo el código dentro de si misma (sin ayuda de otra), es recursiva y no utiliza una estructura de datos adicionales.

Ejemplo de una función recursiva pura

Escribir una función que reciba un string y retorne el inverso de este sin alterar el valor original.

function revertirString(str) {
    if (str.length > 1) {
        return revertirString(str.slice(1)) + str[0];
    }

    return str;
}

Tips para el uso de recursividad pura

  • Para arreglos, utiliza métodos como slice, el operador de dispersión y concat, los cuales hacen copias de los arreglos de forma que estos no mutan.

  • Recuerda que los strings son inmutables, asi que se requiere utilizar métodos como slice, substr o substring para hacer copias de dichos strings.