Curso de Raku / Esenciales / Fundamentos de las funciones / Crear y llamar funciones / Exercises / Factorial recursivo

Solución: Factorial recursivo

El factorial es un ejercicio muy productivo, ya que se puede resolver de varias formas diferentes. Esta vez estamos usando recursión, lo que significa que la función se llama a sí misma.

Código 1

Aquí está el código de la solución. Nota que necesitas verificar la condición para detener la recursión, de lo contrario continuará indefinidamente.

sub factorial($n) {
    if $n < 2 {
        return 1;
    }
    else {
        return $n * factorial($n - 1);
    }
}

say factorial(10);

🦋 Encuentra el programa en el archivo recursive-factorial.raku.

Código 2

En los casos, como se muestra en este código, a menudo es mejor usar formas postfijas de if para retornar inmediatamente de la función. Este enfoque aclara el código y elimina mucha indentación y puntuación.

sub factorial($n) {
    return 1 if $n < 2;
    return $n * factorial($n - 1);
}

say factorial(10);

🦋 Encuentra el programa actualizado en el archivo recursive-factorial-2.raku.

Ejemplo

Ejecuta el programa y verifica el resultado. Por cierto, ¿sabías que 10! es el número exacto de segundos en seis semanas?

$ raku exercises/functions/recursive-factorial.raku
3628800

Factorial recursivo   |   Función de intervalo