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